|
dvander@1651
|
1 |
#include "InstallerMain.h" |
|
dvander@1651
|
2 |
#include "Welcome.h" |
|
dvander@1651
|
3 |
|
|
dvander@1651
|
4 |
#define WMU_INIT_INSTALLER WM_USER+1 |
|
dvander@1651
|
5 |
|
|
dvander@1651
|
6 |
HINSTANCE g_hInstance; |
|
dvander@1651
|
7 |
NEXT_DIALOG next_dialog = DisplayWelcome; |
|
dvander@1651
|
8 |
|
|
dvander@1651
|
9 |
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) |
|
dvander@1651
|
10 |
{ |
|
dvander@1651
|
11 |
switch (message) |
|
dvander@1651
|
12 |
{ |
|
dvander@1651
|
13 |
case WMU_INIT_INSTALLER: |
|
dvander@1651
|
14 |
{ |
|
dvander@1651
|
15 |
while (next_dialog != NULL) |
|
dvander@1651
|
16 |
{ |
|
dvander@1651
|
17 |
next_dialog = (NEXT_DIALOG)next_dialog(hWnd); |
|
dvander@1651
|
18 |
} |
|
dvander@1651
|
19 |
PostQuitMessage(0); |
|
dvander@1651
|
20 |
break; |
|
dvander@1651
|
21 |
} |
|
dvander@1651
|
22 |
case WM_DESTROY: |
|
dvander@1651
|
23 |
{ |
|
dvander@1651
|
24 |
PostQuitMessage(0); |
|
dvander@1651
|
25 |
break; |
|
dvander@1651
|
26 |
} |
|
dvander@1651
|
27 |
default: |
|
dvander@1651
|
28 |
{ |
|
dvander@1651
|
29 |
return DefWindowProc(hWnd, message, wParam, lParam); |
|
dvander@1651
|
30 |
} |
|
dvander@1651
|
31 |
} |
|
dvander@1651
|
32 |
|
|
dvander@1651
|
33 |
return 0; |
|
dvander@1651
|
34 |
} |
|
dvander@1651
|
35 |
|
|
dvander@1651
|
36 |
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) |
|
dvander@1651
|
37 |
{ |
|
dvander@1651
|
38 |
WNDCLASSEX wcex; |
|
dvander@1651
|
39 |
BOOL bRet; |
|
dvander@1651
|
40 |
|
|
dvander@1651
|
41 |
wcex.cbSize = sizeof(wcex); |
|
dvander@1651
|
42 |
wcex.style = CS_HREDRAW | CS_VREDRAW; |
|
dvander@1651
|
43 |
wcex.lpfnWndProc = MainWndProc; |
|
dvander@1651
|
44 |
wcex.cbClsExtra = 0; |
|
dvander@1651
|
45 |
wcex.cbWndExtra = 0; |
|
dvander@1651
|
46 |
wcex.hInstance = hInstance; |
|
dvander@1651
|
47 |
wcex.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(IDI_INSTALLER)); |
|
dvander@1651
|
48 |
wcex.hCursor = LoadCursor(NULL, IDC_ARROW); |
|
dvander@1651
|
49 |
wcex.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); |
|
dvander@1651
|
50 |
wcex.lpszMenuName = _T("InstallerMenu"); |
|
dvander@1651
|
51 |
wcex.lpszClassName = _T("Installer"); |
|
dvander@1651
|
52 |
wcex.hIconSm = LoadIcon(wcex.hInstance, MAKEINTRESOURCE(IDI_SMALL)); |
|
dvander@1651
|
53 |
|
|
dvander@1651
|
54 |
if (!RegisterClassEx(&wcex)) |
|
dvander@1651
|
55 |
{ |
|
dvander@1651
|
56 |
return 1; |
|
dvander@1651
|
57 |
} |
|
dvander@1651
|
58 |
|
|
dvander@1651
|
59 |
INITCOMMONCONTROLSEX ccex; |
|
dvander@1651
|
60 |
ccex.dwSize = sizeof(ccex); |
|
dvander@1651
|
61 |
ccex.dwICC = ICC_BAR_CLASSES |
|
dvander@1651
|
62 |
|ICC_HOTKEY_CLASS |
|
dvander@1651
|
63 |
|ICC_LISTVIEW_CLASSES |
|
dvander@1651
|
64 |
|ICC_PROGRESS_CLASS |
|
dvander@1651
|
65 |
|ICC_WIN95_CLASSES |
|
dvander@1651
|
66 |
|ICC_TAB_CLASSES; |
|
dvander@1651
|
67 |
|
|
dvander@1651
|
68 |
if (!InitCommonControlsEx(&ccex)) |
|
dvander@1651
|
69 |
{ |
|
dvander@1651
|
70 |
return 1; |
|
dvander@1651
|
71 |
} |
|
dvander@1651
|
72 |
|
|
dvander@1651
|
73 |
g_hInstance = hInstance; |
|
dvander@1651
|
74 |
|
|
dvander@1651
|
75 |
HWND hWnd = CreateWindow( |
|
dvander@1651
|
76 |
_T("Installer"), |
|
dvander@1651
|
77 |
_T("InstallerMain"), |
|
dvander@1651
|
78 |
WS_OVERLAPPEDWINDOW, |
|
dvander@1651
|
79 |
CW_USEDEFAULT, |
|
dvander@1651
|
80 |
CW_USEDEFAULT, |
|
dvander@1651
|
81 |
CW_USEDEFAULT, |
|
dvander@1651
|
82 |
CW_USEDEFAULT, |
|
dvander@1651
|
83 |
(HWND)NULL, |
|
dvander@1651
|
84 |
(HMENU)NULL, |
|
dvander@1651
|
85 |
hInstance, |
|
dvander@1651
|
86 |
NULL); |
|
dvander@1651
|
87 |
if (hWnd == NULL) |
|
dvander@1651
|
88 |
{ |
|
dvander@1651
|
89 |
return 1; |
|
dvander@1651
|
90 |
} |
|
dvander@1651
|
91 |
|
|
dvander@1651
|
92 |
ShowWindow(hWnd, SW_HIDE); |
|
dvander@1651
|
93 |
UpdateWindow(hWnd); |
|
dvander@1651
|
94 |
|
|
dvander@1651
|
95 |
PostMessage(hWnd, WMU_INIT_INSTALLER, 0, 0); |
|
dvander@1651
|
96 |
|
|
dvander@1651
|
97 |
MSG msg; |
|
dvander@1651
|
98 |
while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) |
|
dvander@1651
|
99 |
{ |
|
dvander@1651
|
100 |
if (bRet == -1) |
|
dvander@1651
|
101 |
{ |
|
dvander@1651
|
102 |
return 1; |
|
dvander@1651
|
103 |
} |
|
dvander@1651
|
104 |
else |
|
dvander@1651
|
105 |
{ |
|
dvander@1651
|
106 |
TranslateMessage(&msg); |
|
dvander@1651
|
107 |
DispatchMessage(&msg); |
|
dvander@1651
|
108 |
} |
|
dvander@1651
|
109 |
} |
|
dvander@1651
|
110 |
|
|
dvander@1651
|
111 |
return (int)msg.wParam; |
|
dvander@1651
|
112 |
} |