Leaked source code of windows server 2003
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.
 
 
 
 
 
 

141 lines
3.2 KiB

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
Winmain.cpp
Abstract:
Implements the entry point for the application.
Notes:
ANSI only - must run on Win9x.
History:
01/30/01 rparsons Created
01/10/02 rparsons Revised
--*/
#include "demoapp.h"
//
// This structure contains everything we'll need throughout
// the application.
//
APPINFO g_ai;
/*++
Routine Description:
Application entry point.
Arguments:
hInstance - App instance handle.
hPrevInstance - Always NULL.
lpCmdLine - Pointer to the command line.
nCmdShow - Window show flag.
Return Value:
The wParam member of the message structure.
--*/
int
APIENTRY
WinMain(
IN HINSTANCE hInstance,
IN HINSTANCE hPrevInstance,
IN LPSTR lpCmdLine,
IN int nCmdShow
)
{
MSG msg;
HWND hWnd;
HANDLE hThread;
char szError[MAX_PATH];
UINT threadId = 0;
g_ai.hInstance = hInstance;
//
// Do some init stuff.
//
if (!DemoAppInitialize(lpCmdLine)) {
return 0;
}
//
// Determine if we should run the normal app or the setup app.
//
if (g_ai.fRunApp) {
//
// Create the main window and kick off the message loop.
//
if (!InitMainApplication(hInstance)) {
return 0;
}
if (!InitMainInstance(hInstance, nCmdShow)) {
return 0;
}
} else {
LoadString(g_ai.hInstance, IDS_DEMO_ONLY, szError, sizeof(szError));
MessageBox(NULL,
szError,
MAIN_APP_TITLE,
MB_TOPMOST | MB_ICONEXCLAMATION);
//
// Create a thread to handle the splash screen and the extraction
// dialog.
//
hThread = (HANDLE)_beginthreadex(NULL,
0,
&InitSetupThread,
NULL,
0,
&threadId);
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
//
// If we're allowed, perform our version check!!!!
//
if (g_ai.fEnableBadFunc) {
if (!BadIsWindows95()) {
LoadString(g_ai.hInstance, IDS_NOT_WIN95, szError, sizeof(szError));
MessageBox(NULL,
szError,
0,
MB_ICONERROR | MB_TOPMOST);
return 0;
}
}
//
// Create our full screen window and paint the background teal.
//
hWnd = CreateFullScreenWindow();
if (!hWnd) {
return 0;
}
}
while (GetMessage(&msg, (HWND)NULL, 0, 0)) {
if (!IsDialogMessage(hWnd, &msg)) {
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}