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