140 lines
3.5 KiB
C++
140 lines
3.5 KiB
C++
//-----------------------------------------------------------------------------
|
|
// Microsoft OLE DB RowsetViewer
|
|
// Copyright (C) 1994 - 1999 By Microsoft Corporation.
|
|
//
|
|
// @doc
|
|
//
|
|
// @module MAIN.CPP
|
|
//
|
|
//-----------------------------------------------------------------------------------
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
// Includes
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
#include "Headers.h"
|
|
#include "CWinApp.h"
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWinApp
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CWinApp::CWinApp()
|
|
: CAppLite(IDR_ROWSETVIEWER)
|
|
{
|
|
//Windows
|
|
m_pCMainWindow = NULL;
|
|
|
|
//Data
|
|
m_pCMallocSpy = NULL;
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWinApp
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CWinApp::~CWinApp()
|
|
{
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWinApp
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
CWinApp theApp;
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWinApp::InitInstance
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
BOOL CWinApp::InitInstance()
|
|
{
|
|
//CoInitialize before we do anything...
|
|
//NOTE: We have to use OleInitialize for Drag-n-Drop. RegisterDragDrop fails
|
|
//with E_OUTOFMEMORY if just CoInitialize is done...
|
|
OleInitialize(NULL);
|
|
|
|
// Ensure that common control DLL is loaded
|
|
INITCOMMONCONTROLSEX iccex;
|
|
iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
|
|
iccex.dwICC = ICC_USEREX_CLASSES | ICC_LISTVIEW_CLASSES | ICC_TREEVIEW_CLASSES | ICC_TAB_CLASSES | ICC_BAR_CLASSES;
|
|
InitCommonControlsEx(&iccex);
|
|
|
|
//Set the Locale for all C runtime functions...
|
|
setlocale(LC_ALL, ".ACP");
|
|
|
|
/*
|
|
// Load all saved user options
|
|
LoadUserOptions();
|
|
|
|
//C-runtime hooks
|
|
EnableCRTReportHook();
|
|
EnableCRTAllocHook();
|
|
*/
|
|
//Create the Main Window and Child Windows...
|
|
m_pCMainWindow = new CMainWindow;
|
|
if(!m_pCMainWindow->Create(NULL, L"RowsetViewer", L"Microsoft OLE DB RowsetViewer", IDR_ROWSETVIEWER, LoadIcon(GetAppLite()->m_hInstance, MAKEINTRESOURCE(IDR_ROWSETVIEWER))))
|
|
return FALSE;
|
|
|
|
//Register IMallocSpy (if requested)
|
|
if(GetErrorPosting(EP_IMALLOC_SPY))
|
|
{
|
|
m_pCMallocSpy = new CMallocSpy;
|
|
if(m_pCMallocSpy)
|
|
m_pCMallocSpy->Register();
|
|
}
|
|
|
|
//Restore the window positions and state
|
|
if(m_pCMainWindow->m_wndPlacement.length)
|
|
{
|
|
//This already does a ShowWindow/UpdateWindow
|
|
m_pCMainWindow->SetWindowPlacement();
|
|
}
|
|
else
|
|
{
|
|
//Show the window...
|
|
m_pCMainWindow->ShowWindow(GetAppLite()->m_nCmdShow);
|
|
m_pCMainWindow->UpdateWindow();
|
|
}
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWinApp::ExitInstance
|
|
//
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
int CWinApp::ExitInstance()
|
|
{
|
|
//Since we use the CRT hooks, it will be called on delete.
|
|
//So we need to first NULL the global pointer, then delete the actual object...
|
|
CFrameWndLite* pCMainWindow = m_pCMainWindow;
|
|
m_pCMainWindow = NULL;
|
|
SAFE_DELETE(pCMainWindow);
|
|
|
|
//Globals
|
|
g_spDataConvert.Release();
|
|
|
|
//Unitialize COM
|
|
SetErrorInfo(0, NULL);
|
|
OleUninitialize();
|
|
|
|
//Display any Leaks
|
|
if(m_pCMallocSpy)
|
|
{
|
|
if(GetErrorPosting(EP_IMALLOC_SPY))
|
|
m_pCMallocSpy->DumpLeaks();
|
|
m_pCMallocSpy->Unregister();
|
|
SAFE_RELEASE(m_pCMallocSpy);
|
|
}
|
|
|
|
return CAppLite::ExitInstance();
|
|
}
|
|
|
|
|