152 lines
2.9 KiB
C++
152 lines
2.9 KiB
C++
/*++
|
|
|
|
Copyright (c) 2000 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
eZippy Main
|
|
|
|
Abstract:
|
|
|
|
Entrypoint for eZippy.
|
|
|
|
Author:
|
|
|
|
Marc Reyhner 8/28/00
|
|
|
|
--*/
|
|
|
|
#include "stdafx.h"
|
|
#include "eZippy.h"
|
|
#include "ZippyWindow.h"
|
|
#include "TraceManager.h"
|
|
#include "resource.h"
|
|
|
|
// instantiation of the g_hInstance variable
|
|
HINSTANCE g_hInstance = NULL;
|
|
|
|
int
|
|
WINAPI WinMain(
|
|
IN HINSTANCE hInstance,
|
|
IN HINSTANCE hPrevInstance,
|
|
IN LPSTR lpCmdLine,
|
|
IN int nCmdShow
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This sets up the trace manager and the zippy window then does
|
|
the event loop.
|
|
|
|
Arguments:
|
|
|
|
See win32 WinMain docs
|
|
|
|
Return value:
|
|
|
|
0 - Success
|
|
|
|
Non zero - some error
|
|
|
|
--*/
|
|
{
|
|
INITCOMMONCONTROLSEX controlStruct;
|
|
MSG msg;
|
|
DWORD dwResult;
|
|
CZippyWindow mainWindow;
|
|
CTraceManager tracer;
|
|
LPTSTR lpstrCmdLine;
|
|
HACCEL hAccel;
|
|
|
|
g_hInstance = hInstance;
|
|
|
|
|
|
controlStruct.dwSize = sizeof(controlStruct);
|
|
controlStruct.dwICC = ICC_BAR_CLASSES;
|
|
|
|
InitCommonControlsEx(&controlStruct);
|
|
|
|
CTraceManager::_InitTraceManager();
|
|
|
|
dwResult = mainWindow.Create(&tracer);
|
|
if (lpCmdLine && lpCmdLine[0]) {
|
|
// kill any leading and trailing " marks
|
|
lpstrCmdLine = GetCommandLine();
|
|
if (lpstrCmdLine[0] == '"') {
|
|
lpstrCmdLine++;
|
|
lpstrCmdLine[_tcslen(lpstrCmdLine)-1] = 0;
|
|
}
|
|
mainWindow.LoadConfFile(lpstrCmdLine);
|
|
}
|
|
|
|
tracer.StartListenThread(&mainWindow);
|
|
|
|
if (dwResult) {
|
|
return dwResult;
|
|
}
|
|
|
|
hAccel = LoadAccelerators(hInstance,MAKEINTRESOURCE(IDR_ACCELERATOR));
|
|
|
|
while (0 < GetMessage(&msg,NULL,0,0)) {
|
|
if (mainWindow.IsDialogMessage(&msg)) {
|
|
// if it is a dialog message we are done
|
|
// processing this message
|
|
continue;
|
|
}
|
|
if (!mainWindow.TranslateAccelerator(hAccel,&msg)) {
|
|
TranslateMessage(&msg);
|
|
DispatchMessage(&msg);
|
|
}
|
|
}
|
|
|
|
CTraceManager::_CleanupTraceManager();
|
|
return 0;
|
|
}
|
|
|
|
INT
|
|
LoadStringSimple(
|
|
IN UINT uID,
|
|
OUT LPTSTR lpBuffer
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This will load the given string from the applications string table. If
|
|
it is longer than MAX_STR_LEN it is truncated. lpBuffer should be at least
|
|
MAX_STR_LEN characters long. If the string does not exist we return 0
|
|
and set the buffer to IDS_STRINGMISSING, if that failes then we set it to the
|
|
hard coded STR_RES_MISSING.
|
|
|
|
Arguments:
|
|
|
|
uID - Id of the resource to load.
|
|
|
|
lpBuffer - Buffer of MAX_STR_LEN to hold the string
|
|
|
|
Return value:
|
|
|
|
0 - String resource could not be loaded.
|
|
|
|
postive integer - length of the string loaded.
|
|
|
|
--*/
|
|
{
|
|
INT length;
|
|
|
|
length = LoadString(g_hInstance,uID,lpBuffer,MAX_STR_LEN);
|
|
if (length == 0) {
|
|
length = LoadString(g_hInstance,IDS_STRINGMISSING,lpBuffer,MAX_STR_LEN);
|
|
if (length == 0) {
|
|
_tcscpy(lpBuffer,_T(""));
|
|
}
|
|
length = 0;
|
|
}
|
|
|
|
return length;
|
|
}
|
|
|