You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.8 KiB
81 lines
1.8 KiB
// C4290: C++ Exception Specification ignored
|
|
#pragma warning(disable:4290)
|
|
// warning C4511: 'CVssCOMApplication' : copy constructor could not be generated
|
|
#pragma warning(disable:4511)
|
|
// warning C4127: conditional expression is constant
|
|
#pragma warning(disable:4127)
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Includes
|
|
|
|
#include <wtypes.h>
|
|
#include <stddef.h>
|
|
#include <oleauto.h>
|
|
#include <stdio.h>
|
|
|
|
|
|
#include "vss.h"
|
|
#include "vswriter.h"
|
|
#include "sqlsnap.h"
|
|
#include "sqlwriter.h"
|
|
|
|
DWORD g_dwMainThreadId;
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// Control-C handler routine
|
|
|
|
|
|
BOOL WINAPI CtrlC_HandlerRoutine(
|
|
IN DWORD /* dwType */
|
|
)
|
|
{
|
|
// End the message loop
|
|
if (g_dwMainThreadId != 0)
|
|
PostThreadMessage(g_dwMainThreadId, WM_QUIT, 0, 0);
|
|
|
|
// Mark that the break was handled.
|
|
return TRUE;
|
|
}
|
|
|
|
CVssSqlWriterWrapper g_Wrapper;
|
|
|
|
extern "C" int __cdecl wmain(HINSTANCE /*hInstance*/,
|
|
HINSTANCE /*hPrevInstance*/, LPTSTR /*lpCmdLine*/, int /*nShowCmd*/)
|
|
{
|
|
int nRet = 0;
|
|
|
|
try
|
|
{
|
|
// Preparing the CTRL-C handling routine - only for testing...
|
|
g_dwMainThreadId = GetCurrentThreadId();
|
|
::SetConsoleCtrlHandler(CtrlC_HandlerRoutine, TRUE);
|
|
|
|
// Initialize COM library
|
|
HRESULT hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
|
|
if (FAILED(hr))
|
|
throw hr;
|
|
|
|
// Declare a CVssTSubWriter instance
|
|
hr = g_Wrapper.CreateSqlWriter();
|
|
if (FAILED(hr))
|
|
throw hr;
|
|
|
|
// message loop - need for STA server
|
|
MSG msg;
|
|
while (GetMessage(&msg, 0, 0, 0))
|
|
DispatchMessage(&msg);
|
|
|
|
// Subscribe the object.
|
|
g_Wrapper.DestroySqlWriter();
|
|
|
|
// Uninitialize COM library
|
|
CoUninitialize();
|
|
}
|
|
catch(...)
|
|
{
|
|
}
|
|
|
|
return nRet;
|
|
}
|
|
|