diff options
author | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-04-29 06:58:25 +0000 |
---|---|---|
committer | Peter Breitenlohner <peb@mppmu.mpg.de> | 2014-04-29 06:58:25 +0000 |
commit | ade99b6e1e4e5cc22d6522782f387e678a3a7ff5 (patch) | |
tree | ff58b4a14c25651928933cf51a24683ff419b003 /Build/source/texk/dvisvgm/dvisvgm-1.5.3/src/MiKTeXCom.cpp | |
parent | 44c0325c41761729f2df6665f110dec0b942ab2a (diff) |
dvisvgm 1.6
git-svn-id: svn://tug.org/texlive/trunk@33742 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/dvisvgm/dvisvgm-1.5.3/src/MiKTeXCom.cpp')
-rw-r--r-- | Build/source/texk/dvisvgm/dvisvgm-1.5.3/src/MiKTeXCom.cpp | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/Build/source/texk/dvisvgm/dvisvgm-1.5.3/src/MiKTeXCom.cpp b/Build/source/texk/dvisvgm/dvisvgm-1.5.3/src/MiKTeXCom.cpp deleted file mode 100644 index bb4353f8ee4..00000000000 --- a/Build/source/texk/dvisvgm/dvisvgm-1.5.3/src/MiKTeXCom.cpp +++ /dev/null @@ -1,106 +0,0 @@ -/************************************************************************* -** MiKTeXCom.cpp ** -** ** -** This file is part of dvisvgm -- the DVI to SVG converter ** -** Copyright (C) 2005-2014 Martin Gieseking <martin.gieseking@uos.de> ** -** ** -** This program is free software; you can redistribute it and/or ** -** modify it under the terms of the GNU General Public License as ** -** published by the Free Software Foundation; either version 3 of ** -** the License, or (at your option) any later version. ** -** ** -** This program is distributed in the hope that it will be useful, but ** -** WITHOUT ANY WARRANTY; without even the implied warranty of ** -** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ** -** GNU General Public License for more details. ** -** ** -** You should have received a copy of the GNU General Public License ** -** along with this program; if not, see <http://www.gnu.org/licenses/>. ** -*************************************************************************/ - -#include <config.h> -#include <comdef.h> -#include <string> -#include "MessageException.h" -#include "MiKTeXCom.h" -#include "macros.h" - -using namespace std; - - -MiKTeXCom::MiKTeXCom () : _session(0) { - if (FAILED(CoInitialize(0))) - throw MessageException("COM library could not be initialized\n"); -#ifdef _MSC_VER - HRESULT hres = _session.CreateInstance(L"MiKTeX.Session"); -#elif defined(__WIN64__) - HRESULT hres = CoCreateInstance(CLSID_MiKTeXSession2_9, 0, CLSCTX_LOCAL_SERVER, IID_ISession2, (void**)&_session); -#else - HRESULT hres = CoCreateInstance(CLSID_MiKTeXSession2_9, 0, CLSCTX_INPROC_SERVER, IID_ISession2, (void**)&_session); -#endif - if (FAILED(hres)) { - CoUninitialize(); - throw MessageException("MiKTeX.Session could not be initialized"); - } -} - - -MiKTeXCom::~MiKTeXCom () { - if (_session) { -#ifdef _MSC_VER - _session.Release(); -#else - _session->Release(); -#endif - _session = 0; // avoid automatic calling of Release() after CoUninitialize() - } - CoUninitialize(); -} - - -string MiKTeXCom::getVersion () { -#ifdef _MSC_VER - MiKTeXSetupInfo info = _session->GetMiKTeXSetupInfo(); -#else - MiKTeXSetupInfo info; - _session->GetMiKTeXSetupInfo(&info); -#endif - _bstr_t version = info.version; - return string(version); -} - - -string MiKTeXCom::getBinDir () { -#ifdef _MSC_VER - MiKTeXSetupInfo info = _session->GetMiKTeXSetupInfo(); -#else - MiKTeXSetupInfo info; - _session->GetMiKTeXSetupInfo(&info); -#endif - _bstr_t bindir = info.binDirectory; - return string(bindir); -} - - -const char* MiKTeXCom::findFile (const char *fname) { - try { - _bstr_t path; - static string ret; -#ifdef _MSC_VER - HRESULT hres = _session->FindFile(fname, path.GetAddress()); - bool found = (hres != 0); -#else - VARIANT_BOOL found_var; - _session->FindFile(_bstr_t(fname), path.GetAddress(), &found_var); - bool found = (found_var == VARIANT_TRUE); -#endif - if (found) { - ret = _bstr_t(path); - return ret.c_str(); - } - return 0; - } - catch (_com_error &e) { - throw MessageException((const char*)e.Description()); - } -} |