findfile.cpp
Find a file (C++). Uses the FindFile() method to locate a file.
#include <cstdio>
#import <MiKTeX208-session.tlb>
using namespace MiKTeXSession2_8;
int
main ( int argc,
const char ** argv)
{
if (argc != 2)
{
puts ("Usage: findfile FILENAME");
puts (" e.g.: findfile sample2e.tex");
return (1);
}
if (FAILED(CoInitialize(0)))
{
puts ("COM library could not be initialized.");
return (1);
}
int retCode = 0;
try
{
ISession2Ptr pSession2;
HRESULT hr = pSession2.CreateInstance(L"MiKTeX.Session");
if (FAILED(hr))
{
_com_raise_error (hr);
}
_bstr_t fileName (argv[1]);
_bstr_t path;
if (pSession2->FindFile(fileName, path.GetAddress()))
{
puts (path);
}
}
catch (const _com_error & e)
{
puts (e.Description());
retCode = 1;
}
CoUninitialize ();
return (retCode);
}