// for some reason the compiler is not setting this #def when compiling this file #define CPLUSPLUS #include #include #include #include #include "winsdbg.h" #include "winswriter.hpp" //{f08c1483-8407-4a26-8c26-6c267a629741} static const GUID g_GuidWinsWriter = { 0xf08c1483, 0x8407, 0x4a26, { 0x8c, 0x26, 0x6c, 0x26, 0x7a, 0x62, 0x97, 0x41 } }; ///////////////////////////////////////////////////////////////// // Implementation of the CWinsVssJetWriter starts here // HRESULT CWinsVssJetWriter::Initialize() { HRESULT hr = S_OK; hr = CVssJetWriter::Initialize( g_GuidWinsWriter, WINSWRITER_NAME, TRUE, FALSE, L"", L""); return hr; } HRESULT CWinsVssJetWriter::Terminate() { CVssJetWriter::Uninitialize(); return S_OK; } // // Implementation of the CWinsVssJetWriter ends here ///////////////////////////////////////////////////////////////// // writer instance static CWinsVssJetWriter g_WinsWriter; extern "C" DWORD _cdecl WinsWriterInit() { HRESULT hr = S_OK; DBGENTER("WinsWriterInit\n"); hr = CoInitializeEx(NULL, COINIT_MULTITHREADED); if (FAILED(hr)) { DBGPRINT1(ERR,"CoInitializeEx failed with hr=%x.\n", hr); return HRESULT_CODE(hr); } hr = CoInitializeSecurity( NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_CONNECT, RPC_C_IMP_LEVEL_IDENTIFY, NULL, EOAC_NONE, NULL); if (FAILED(hr)) { DBGPRINT1(ERR,"CoInitializeSecurity failed with hr=%x.\n", hr); return HRESULT_CODE(hr); } hr = g_WinsWriter.Initialize(); DBGPRINT1(FLOW,"Vss writer Initialize: code hr=0x%08x\n", hr); DBGLEAVE("WinsWriterInit\n"); return HRESULT_CODE(hr); } extern "C" DWORD _cdecl WinsWriterTerm() { DBGENTER("WinsWriterTerm\n"); g_WinsWriter.Terminate(); CoUninitialize(); DBGLEAVE("WinsWriterTerm\n"); return ERROR_SUCCESS; }