findpk.cpp
Find a Pk font (C++). Uses the FindPkFont() method to locate a Pk font file.
#include <cstdio>
#import <MiKTeX208-session.tlb>
using namespace MiKTeXSession2_8;
int
main ( int argc,
const char ** argv)
{
if (argc != 4)
{
puts ("Usage: findpk FONTNAME MODE DPI");
puts (" e.g.: findpk cmr10 ljfour 600");
return (1);
}
if (FAILED(CoInitialize(0)))
{
puts ("COM library could not be initialized.");
return (1);
}
int retCode = 0;
try
{
ISessionPtr pSession;
HRESULT hr = pSession.CreateInstance(L"MiKTeX.Session");
if (FAILED(hr))
{
_com_raise_error (hr);
}
_bstr_t fontName (argv[1]);
_bstr_t mode (argv[2]);
long dpi = atoi(argv[3]);
_bstr_t path;
if (pSession->FindPkFile(fontName, mode, dpi, path.GetAddress()))
{
puts (path);
}
}
catch (const _com_error & e)
{
puts (e.Description());
retCode = 1;
}
CoUninitialize ();
return (retCode);
}