Example #1
0
int WINAPI _tWinMain(HINSTANCE hInstance, HINSTANCE /*hPrevInstance*/, LPTSTR lpstrCmdLine, int nCmdShow)
{
	HRESULT hRes = ::CoInitialize(NULL);
	::OleInitialize(NULL);

// If you are running on NT 4.0 or higher you can use the following call instead to 
// make the EXE free threaded. This means that calls come in on a random RPC thread.
//	HRESULT hRes = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);
	ATLASSERT(SUCCEEDED(hRes));

	// this resolves ATL window thunking problem when Microsoft Layer for Unicode (MSLU) is used
	::DefWindowProc(NULL, 0, 0, 0L);

	AtlInitCommonControls(ICC_BAR_CLASSES);	// add flags to support other controls

	hRes = _Module.Init(NULL, hInstance, &LIBID_WizardLib);
	ATLASSERT(SUCCEEDED(hRes));


	if (!InitApp())
	{
		return -1;
	}

	int nRet = Run(lpstrCmdLine, nCmdShow);

	UninitApp();

	_Module.Term();
	::CoUninitialize();

	return nRet;
}
Example #2
0
int Run(LPTSTR /*lpstrCmdLine*/ = NULL, int nCmdShow = SW_SHOWDEFAULT)
{
	CMessageLoop theLoop;
	_Module.AddMessageLoop(&theLoop);

	if (!InitApp())
	{
		return -1;
	}

	int nRet = theLoop.Run();

	UninitApp();

	_Module.RemoveMessageLoop();
	return nRet;
}