windows-nt/Source/XPSP1/NT/termsrv/common/trace/ezippy/ezippy.cpp
2020-09-26 16:20:57 +08:00

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;
}