mirror of https://github.com/tongzx/nt5src
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.
151 lines
3.0 KiB
151 lines
3.0 KiB
//////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// File: main.cpp
|
|
//
|
|
// Description:
|
|
//
|
|
// Copyright (c) 2000 Microsoft Corp.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
// App Includes
|
|
#include "precomp.h"
|
|
#include "main.h"
|
|
#include "msprjctr.h"
|
|
|
|
#include <commctrl.h>
|
|
|
|
///////////////////////////
|
|
// GVAR_LOCAL
|
|
//
|
|
// Global Variable
|
|
//
|
|
static struct GVAR_LOCAL
|
|
{
|
|
HINSTANCE hInstance;
|
|
} GVAR_LOCAL =
|
|
{
|
|
NULL
|
|
};
|
|
|
|
|
|
////////////////////////// Function Prototypes ////////////////////////////////
|
|
|
|
static bool InitApp(HINSTANCE hInstance);
|
|
static bool TermApp();
|
|
|
|
//////////////////////////////
|
|
// WinMain
|
|
//
|
|
int APIENTRY WinMain(HINSTANCE hInstance,
|
|
HINSTANCE hPrevInstance,
|
|
LPSTR lpCmdLine,
|
|
int nCmdShow)
|
|
{
|
|
HWND hwndCfgDlg = NULL;
|
|
bool bSuccess = false;
|
|
bool bDone = false;
|
|
int iReturnValue = 0;
|
|
MSG msg;
|
|
|
|
// initialize our application
|
|
bSuccess = InitApp(hInstance);
|
|
|
|
if (bSuccess)
|
|
{
|
|
// create our config dialog, which is our main dialog
|
|
hwndCfgDlg = CfgDlg::Create(nCmdShow);
|
|
|
|
if (hwndCfgDlg == NULL)
|
|
{
|
|
iReturnValue = -1;
|
|
bSuccess = false;
|
|
}
|
|
}
|
|
|
|
if (bSuccess)
|
|
{
|
|
while (::GetMessage(&msg, NULL, 0, 0))
|
|
{
|
|
::TranslateMessage(&msg);
|
|
::DispatchMessage(&msg);
|
|
}
|
|
}
|
|
|
|
TermApp();
|
|
|
|
return iReturnValue;
|
|
}
|
|
|
|
|
|
//////////////////////////////
|
|
// InitApp
|
|
//
|
|
static bool InitApp(HINSTANCE hInstance)
|
|
{
|
|
HRESULT hr = S_OK;
|
|
bool bReturn = true;
|
|
INITCOMMONCONTROLSEX CommonControls = {0};
|
|
BOOL bSuccess = FALSE;
|
|
|
|
//
|
|
// initialize the common control library
|
|
//
|
|
CommonControls.dwSize = sizeof(CommonControls);
|
|
CommonControls.dwICC = ICC_BAR_CLASSES | ICC_WIN95_CLASSES;
|
|
|
|
bSuccess = InitCommonControlsEx(&CommonControls);
|
|
|
|
if (bSuccess)
|
|
{
|
|
DBG_TRC(("Successfully initialized Common Controls"));
|
|
}
|
|
else
|
|
{
|
|
DBG_TRC(("Failed to Init Common Controls, LastError = %lu",
|
|
GetLastError()));
|
|
}
|
|
|
|
//
|
|
// Initialize COM
|
|
//
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
// we are apartment threaded because the UPnP device host API
|
|
// claims it has some problems in a free threaded model.
|
|
//
|
|
hr = CoInitializeEx(NULL, COINIT_MULTITHREADED);
|
|
}
|
|
|
|
//
|
|
// Initialize our Util Library
|
|
//
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
hr = Util::Init(hInstance);
|
|
}
|
|
|
|
//
|
|
// Initialize our Config Dialog module
|
|
//
|
|
if (SUCCEEDED(hr))
|
|
{
|
|
hr = CfgDlg::Init(hInstance);
|
|
}
|
|
|
|
return bReturn;
|
|
}
|
|
|
|
//////////////////////////////
|
|
// TermApp
|
|
//
|
|
static bool TermApp()
|
|
{
|
|
// shutdown the Config Dialog Module
|
|
CfgDlg::Term();
|
|
|
|
// shutdown the Util Module.
|
|
Util::Term();
|
|
|
|
return true;
|
|
}
|