ReactOS 0.4.15-dev-7998-gdb93cb1
msconfig.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Applications
3 * LICENSE: LGPL - See COPYING in the top level directory
4 * FILE: base/applications/msconfig_new/msconfig.c
5 * PURPOSE: MSConfig main dialog
6 * COPYRIGHT: Copyright 2005-2006 Christoph von Wittich <Christoph@ApiViewer.de>
7 */
8
9#include "precomp.h"
10#include "fileutils.h"
11#include "utils.h"
12
13#include "generalpage.h"
14#include "systempage.h"
15#include "freeldrpage.h"
16#include "srvpage.h"
17// #include "startuppage.h"
18#include "toolspage.h"
19
20/* Allow only for a single instance of MSConfig */
21#ifdef _MSC_VER
22 #pragma data_seg("MSConfigInstance")
23 HWND hSingleWnd = NULL;
24 #pragma data_seg()
25 #pragma comment(linker, "/SECTION:MSConfigInstance,RWS")
26#else
27 HWND hSingleWnd __attribute__((section ("MSConfigInstance"), shared)) = NULL;
28#endif
29
30/* Defaults for ReactOS */
33
34/* Language-independent Vendor strings */
35const LPCWSTR IDS_REACTOS = L"ReactOS";
36const LPCWSTR IDS_MICROSOFT = L"Microsoft";
37const LPCWSTR IDS_WINDOWS = L"Windows";
38
41HWND hMainWnd; /* Main Window */
42
43HWND hTabWnd; /* Tab Control Window */
46
47
48/* About Box dialog */
50{
52 switch (message)
53 {
54 case WM_INITDIALOG:
55 return (INT_PTR)TRUE;
56
57 case WM_COMMAND:
58 if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
59 {
60 EndDialog(hDlg, LOWORD(wParam));
61 return (INT_PTR)TRUE;
62 }
63 break;
64 }
65 return (INT_PTR)FALSE;
66}
67
68
69/* Message handler for dialog box */
71{
72 switch (uMessage)
73 {
74 case WM_SYSCOMMAND:
75 {
76 switch (LOWORD(wParam) /*GET_WM_COMMAND_ID(wParam, lParam)*/)
77 {
78 case IDM_ABOUT:
80 // break;
81 return TRUE;
82 }
83
84 // break;
85 return FALSE;
86 }
87
88 case WM_COMMAND:
89 {
90 switch (LOWORD(wParam) /*GET_WM_COMMAND_ID(wParam, lParam)*/)
91 {
92 case IDM_ABOUT:
94 // break;
95 return TRUE;
96 }
97
98 break;
99 // return FALSE;
100 }
101
102 case WM_DESTROY:
103 {
104 if (wpOrigEditProc)
106
107 if (hIcon) DestroyIcon(hIcon);
109 }
110
111 default:
112 break;
113 }
114
115 /* Return */
116 if (wpOrigEditProc)
117 return CallWindowProc(wpOrigEditProc, hWnd, uMessage, wParam, lParam);
118 else
119 return FALSE;
120}
121
122
123#include <pshpack1.h>
124typedef struct DLGTEMPLATEEX
125{
132 short x;
133 short y;
134 short cx;
135 short cy;
137#include <poppack.h>
138
140{
141 switch (message)
142 {
143 case PSCB_PRECREATE:
144 {
145 LPDLGTEMPLATE dlgTemplate = (LPDLGTEMPLATE)lParam;
146 LPDLGTEMPLATEEX dlgTemplateEx = (LPDLGTEMPLATEEX)lParam;
147
148 // MFC : DS_MODALFRAME | DS_3DLOOK | DS_CONTEXTHELP | DS_SETFONT | WS_POPUP | WS_VISIBLE | WS_CAPTION;
150 // DS_SHELLFONT | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME;
152
153 /* Hide the dialog by default; we will center it on screen later, and then show it */
154 style &= ~WS_VISIBLE;
155
156 /* Set the styles of the property sheet dialog */
157 if (dlgTemplateEx->signature == 0xFFFF)
158 {
159 dlgTemplateEx->style = style;
160 dlgTemplateEx->exStyle = exStyle;
161 }
162 else
163 {
164 dlgTemplate->style = style;
165 dlgTemplate->dwExtendedStyle = exStyle;
166 }
167
168 break;
169 }
170
171 case PSCB_INITIALIZED:
172 {
173 /* Customize the window's system menu, add items before the "Close" item */
174 LPWSTR szMenuString;
175 HMENU hSysMenu = GetSystemMenu(hDlg, FALSE);
176 assert(hSysMenu);
177
178 szMenuString = LoadResourceString(hInst, IDS_ABOUT);
179 if (szMenuString)
180 {
181 /* "About" menu */
182 InsertMenuW(hSysMenu, SC_CLOSE, MF_BYCOMMAND | MF_ENABLED | MF_STRING, IDM_ABOUT, szMenuString);
183 /* Separator */
185
186 MemFree(szMenuString);
187 }
188 DrawMenuBar(hDlg);
189
190 /* Set the dialog icons */
193 SendMessageW(hDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
194 SendMessageW(hDlg, WM_SETICON, ICON_SMALL, (LPARAM)hIconSm);
195
196 /* Sub-class the property sheet window procedure */
198
199 break;
200 }
201
202 default:
203 break;
204 }
205
206 return FALSE;
207}
208
210{
211 HWND hPropSheet;
213 PROPSHEETPAGEW psp[7];
214 unsigned int nPages = 0;
215
216 /* Header */
217 psh.dwSize = sizeof(psh);
218 psh.dwFlags = PSH_PROPSHEETPAGE | PSH_MODELESS | /*PSH_USEICONID |*/ PSH_HASHELP | /*PSH_NOCONTEXTHELP |*/ PSH_USECALLBACK;
219 psh.hInstance = hInstance;
220 psh.hwndParent = hwndOwner;
221 // psh.pszIcon = MAKEINTRESOURCEW(IDI_APPICON); // Disabled because it only sets the small icon; the big icon is a stretched version of the small one.
222 psh.pszCaption = lpszTitle;
223 psh.nStartPage = 0;
224 psh.ppsp = psp;
226
227 /* General page */
228 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
229 psp[nPages].dwFlags = PSP_HASHELP;
230 psp[nPages].hInstance = hInstance;
232 psp[nPages].pfnDlgProc = GeneralPageWndProc;
233 ++nPages;
234
235 // if (bIsPreVistaOSVersion)
236 {
237 /* SYSTEM.INI page */
239 {
240 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
241 psp[nPages].dwFlags = PSP_HASHELP | PSP_USETITLE;
242 psp[nPages].hInstance = hInstance;
245 psp[nPages].pfnDlgProc = SystemPageWndProc;
246 psp[nPages].lParam = (LPARAM)lpszSystemIni;
247 ++nPages;
248
250 }
251
252 /* WIN.INI page */
254 {
255 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
256 psp[nPages].dwFlags = PSP_HASHELP | PSP_USETITLE;
257 psp[nPages].hInstance = hInstance;
260 psp[nPages].pfnDlgProc = WinPageWndProc;
261 psp[nPages].lParam = (LPARAM)lpszWinIni;
262 ++nPages;
263
265 }
266 }
267
268 /* FreeLdr page */
269 // TODO: Program the interface for Vista: "light" BCD editor...
271 {
272 LPCWSTR lpszLoaderIniFile = NULL;
273 DWORD dwTabNameId = 0;
274 if (bIsWindows)
275 {
276 lpszLoaderIniFile = lpszBootIni;
277 dwTabNameId = IDS_TAB_BOOT;
278 }
279 else
280 {
281 lpszLoaderIniFile = lpszFreeLdrIni;
282 dwTabNameId = IDS_TAB_FREELDR;
283 }
284
285 if (MyFileExists(lpszLoaderIniFile, NULL))
286 {
287 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
288 psp[nPages].dwFlags = PSP_HASHELP | PSP_USETITLE;
289 psp[nPages].hInstance = hInstance;
290 psp[nPages].pszTitle = MAKEINTRESOURCEW(dwTabNameId);
292 psp[nPages].pfnDlgProc = FreeLdrPageWndProc;
293 psp[nPages].lParam = (LPARAM)lpszLoaderIniFile;
294 ++nPages;
295
296 BackupIniFile(lpszLoaderIniFile);
297 }
298 }
299
300 /* Services page */
301 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
302 psp[nPages].dwFlags = PSP_HASHELP;
303 psp[nPages].hInstance = hInstance;
305 psp[nPages].pfnDlgProc = ServicesPageWndProc;
306 ++nPages;
307
308#if 0
309 /* Startup page */
310 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
311 psp[nPages].dwFlags = PSP_HASHELP;
312 psp[nPages].hInstance = hInstance;
314 psp[nPages].pfnDlgProc = StartupPageWndProc;
315 ++nPages;
316#endif
317
318 /* Tools page */
319 psp[nPages].dwSize = sizeof(PROPSHEETPAGEW);
320 psp[nPages].dwFlags = PSP_HASHELP;
321 psp[nPages].hInstance = hInstance;
323 psp[nPages].pfnDlgProc = ToolsPageWndProc;
324 ++nPages;
325
326 /* Set the total number of created pages */
327 psh.nPages = nPages;
328
329 /* Create the property sheet */
330 hPropSheet = (HWND)PropertySheetW(&psh);
331 if (hPropSheet)
332 {
333 /* Center the property sheet on the desktop and show it */
335 ShowWindow(hPropSheet, SW_SHOWNORMAL);
336 }
337
338 return hPropSheet;
339}
340
342{
343 BOOL Success = TRUE;
344 LPWSTR lpszVistaAppName = NULL;
345 HANDLE hSemaphore;
347
348 /* Initialize our global version flags */
351
352 /* Initialize global strings */
355 lpszVistaAppName = LoadResourceString(hInstance, IDS_MSCONFIG_2);
356
357 /* We use a semaphore in order to have a single-instance application */
358 hSemaphore = CreateSemaphoreW(NULL, 0, 1, L"MSConfigRunning");
359 if (!hSemaphore || GetLastError() == ERROR_ALREADY_EXISTS)
360 {
361 CloseHandle(hSemaphore);
362
363 /*
364 * A semaphore with the same name already exist. It should have been
365 * created by another instance of MSConfig. Try to find its window
366 * and bring it to front.
367 */
368 if ( (hSingleWnd && IsWindow(hSingleWnd)) ||
369 ( (hSingleWnd = FindWindowW(L"#32770", szAppName)) != NULL ) ||
370 (!bIsPreVistaOSVersion ? ( (hSingleWnd = FindWindowW(L"#32770", lpszVistaAppName)) != NULL ) : FALSE) )
371 {
372 /* Found it. Show the window. */
373 ShowWindow(hSingleWnd, SW_SHOWNORMAL);
374 SetForegroundWindow(hSingleWnd);
375 }
376
377 /* Quit this instance of MSConfig */
378 Success = FALSE;
379 }
380 if (!bIsPreVistaOSVersion) MemFree(lpszVistaAppName);
381
382 /* Quit now if we failed */
383 if (!Success)
384 {
386 return FALSE;
387 }
388
389 /* Initialize the common controls */
390 InitControls.dwSize = sizeof(INITCOMMONCONTROLSEX);
391 InitControls.dwICC = ICC_LISTVIEW_CLASSES | ICC_TREEVIEW_CLASSES | ICC_UPDOWN_CLASS /* | ICC_PROGRESS_CLASS | ICC_HOTKEY_CLASS*/;
393
395
396 return Success;
397}
398
400{
402
403 // // Close the sentry semaphore.
404 // CloseHandle(hSemaphore);
405}
406
408 HINSTANCE hPrevInstance,
409 LPTSTR lpCmdLine,
410 int nCmdShow)
411{
412 MSG msg;
413 HACCEL hAccelTable;
414
415 UNREFERENCED_PARAMETER(hPrevInstance);
416 UNREFERENCED_PARAMETER(lpCmdLine);
417 UNREFERENCED_PARAMETER(nCmdShow);
418
419 /*
420 * Initialize this instance of MSConfig. Quit if we have
421 * another instance already running.
422 */
423 if (!Initialize(hInstance))
424 return -1;
425
426 // hInst = hInstance;
427
429 if (!hMainWnd)
430 {
431 /* We failed, cleanup and bail out */
432 Cleanup();
433 return -1;
434 }
435
437
438 /* Message loop */
439 while (IsWindow(hMainWnd) && GetMessageW(&msg, NULL, 0, 0))
440 {
441 /*
442 * PropSheet_GetCurrentPageHwnd returns NULL when the user clicks the OK or Cancel button
443 * and after all of the pages have been notified. Apply button doesn't cause this to happen.
444 * We can then use the DestroyWindow function to destroy the property sheet.
445 */
447 break;
448
449 /* Process the accelerator table */
450 if (!TranslateAcceleratorW(hMainWnd, hAccelTable, &msg))
451 {
452 /*
453 * If e.g. an item on the tree view is being edited,
454 * we cannot pass the event to PropSheet_IsDialogMessage.
455 * Doing so causes the property sheet to be closed at Enter press
456 * (instead of completing edit operation).
457 */
458 if (/*g_bDisableDialogDispatch ||*/ !PropSheet_IsDialogMessage(hMainWnd, &msg))
459 {
462 }
463 }
464 }
465
466 // FIXME: Process the results of MSConfig !!
467
468 /* Destroy the accelerator table and the window */
469 if (hAccelTable != NULL)
470 DestroyAcceleratorTable(hAccelTable);
471
473
474 /* Finish cleanup and return */
475 Cleanup();
476 return (int)msg.wParam;
477}
478
479/* EOF */
Arabic default style
Definition: afstyles.h:94
#define msg(x)
Definition: auth_time.c:54
#define IDD_ABOUTBOX
Definition: resource.h:8
#define IDS_ABOUT
Definition: resource.h:29
HWND hWnd
Definition: settings.c:17
INT_PTR CALLBACK SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: system.c:393
#define IDI_APPICON
Definition: resource.h:166
#define IDM_ABOUT
Definition: resource.h:29
#define IDD_GENERAL_PAGE
Definition: resource.h:6
#define IDD_FREELDR_PAGE
Definition: resource.h:8
#define IDD_TOOLS_PAGE
Definition: resource.h:4
#define IDS_TAB_FREELDR
Definition: resource.h:74
#define IDD_STARTUP_PAGE
Definition: resource.h:7
#define IDD_SERVICES_PAGE
Definition: resource.h:5
#define IDD_SYSTEM_PAGE
Definition: resource.h:9
#define IDS_MSCONFIG
Definition: resource.h:114
#define IDS_TAB_SYSTEM
Definition: resource.h:73
BOOL MyFileExists(IN LPCWSTR lpszFilePath, OUT PWIN32_FIND_DATAW pFindData OPTIONAL)
Definition: fileutils.c:18
BOOL BackupIniFile(IN LPCWSTR lpszIniFile)
Definition: fileutils.c:93
#define IDS_TAB_WIN
Definition: resource.h:35
#define IDR_MSCONFIG
Definition: resource.h:154
#define IDS_TAB_BOOT
Definition: resource.h:50
#define IDS_MSCONFIG_2
Definition: resource.h:148
VOID ClipOrCenterWindowToMonitor(HWND hWnd, UINT flags)
Definition: utils.c:216
BOOL IsPreVistaOSVersion(VOID)
Definition: utils.c:275
BOOL MemFree(IN PVOID lpMem)
Definition: utils.c:26
BOOL IsWindowsOS(VOID)
Definition: utils.c:226
#define MONITOR_CENTER
Definition: utils.h:67
#define MONITOR_WORKAREA
Definition: utils.h:69
#define LoadResourceString(hInst, uID)
Definition: utils.h:48
HINSTANCE hInstance
Definition: charmap.c:19
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
Definition: commctrl.c:893
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define __attribute__(x)
Definition: wpp_private.h:207
#define APIENTRY
Definition: api.h:79
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
Definition: propsheet.c:2913
#define CloseHandle
Definition: compat.h:739
HANDLE HWND
Definition: compat.h:19
#define CALLBACK
Definition: compat.h:35
static const WCHAR Cleanup[]
Definition: register.c:80
#define assert(x)
Definition: debug.h:53
@ Success
Definition: eventcreate.c:712
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
#define _tWinMain
Definition: tchar.h:498
#define ERROR_ALREADY_EXISTS
Definition: disk.h:80
static HICON
Definition: imagelist.c:84
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
static VOID InitControls(HWND hwnd)
Definition: mplay32.c:303
INT_PTR CALLBACK FreeLdrPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: freeldrpage.c:134
INT_PTR CALLBACK GeneralPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: generalpage.c:25
HINSTANCE hInst
Definition: msconfig.c:19
HWND hMainWnd
Definition: msconfig.c:21
HWND hTabWnd
Definition: msconfig.c:22
INT_PTR CALLBACK StartupPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: startuppage.c:20
LPCWSTR lpszFreeLdrIni
Definition: freeldrpage.c:21
LPCWSTR lpszBootIni
Definition: freeldrpage.c:22
const LPCWSTR IDS_WINDOWS
Definition: msconfig.c:37
const LPCWSTR IDS_MICROSOFT
Definition: msconfig.c:36
struct DLGTEMPLATEEX * LPDLGTEMPLATEEX
BOOL bIsPreVistaOSVersion
Definition: msconfig.c:32
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
Definition: msconfig.c:70
LPWSTR szAppName
Definition: msconfig.c:40
const LPCWSTR IDS_REACTOS
Definition: msconfig.c:35
int CALLBACK PropSheetCallback(HWND hDlg, UINT message, LPARAM lParam)
Definition: msconfig.c:139
HICON hIcon
Definition: msconfig.c:44
INT_PTR CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: msconfig.c:49
HICON hIconSm
Definition: msconfig.c:44
HWND CreatePropSheet(HINSTANCE hInstance, HWND hwndOwner, LPCTSTR lpszTitle)
Definition: msconfig.c:209
WNDPROC wpOrigEditProc
Definition: msconfig.c:45
BOOL bIsWindows
Definition: msconfig.c:31
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define WS_CAPTION
Definition: pedump.c:624
#define WS_SYSMENU
Definition: pedump.c:629
#define WS_POPUP
Definition: pedump.c:616
#define WS_VISIBLE
Definition: pedump.c:620
#define WS_MINIMIZEBOX
Definition: pedump.c:631
#define PSP_HASHELP
Definition: prsht.h:28
#define PSH_MODELESS
Definition: prsht.h:50
#define PSCB_PRECREATE
Definition: prsht.h:76
#define PSH_USECALLBACK
Definition: prsht.h:48
#define PSP_USETITLE
Definition: prsht.h:26
#define PSH_HASHELP
Definition: prsht.h:49
struct _PROPSHEETPAGEW PROPSHEETPAGEW
#define PropSheet_IsDialogMessage(d, m)
Definition: prsht.h:347
#define PSH_PROPSHEETPAGE
Definition: prsht.h:43
#define PSCB_INITIALIZED
Definition: prsht.h:75
#define PropSheet_GetCurrentPageHwnd(d)
Definition: prsht.h:345
struct tagINITCOMMONCONTROLSEX INITCOMMONCONTROLSEX
#define ICC_TREEVIEW_CLASSES
Definition: commctrl.h:59
#define ICC_UPDOWN_CLASS
Definition: commctrl.h:62
#define ICC_LISTVIEW_CLASSES
Definition: commctrl.h:58
INT_PTR CALLBACK ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: srvpage.c:22
WORD signature
Definition: msconfig.c:127
DWORD helpID
Definition: msconfig.c:128
WORD cDlgItems
Definition: msconfig.c:131
DWORD exStyle
Definition: msconfig.c:129
DWORD style
Definition: msconfig.c:130
DWORD style
Definition: winuser.h:3059
DWORD dwExtendedStyle
Definition: winuser.h:3060
LPCPROPSHEETPAGEW ppsp
Definition: prsht.h:308
HINSTANCE hInstance
Definition: prsht.h:296
DWORD dwSize
Definition: prsht.h:293
DWORD dwFlags
Definition: prsht.h:294
HWND hwndParent
Definition: prsht.h:295
PFNPROPSHEETCALLBACK pfnCallback
Definition: prsht.h:311
UINT nStartPage
Definition: prsht.h:304
LPCWSTR pszCaption
Definition: prsht.h:301
DLGPROC pfnDlgProc
Definition: prsht.h:226
DWORD dwSize
Definition: prsht.h:214
DWORD dwFlags
Definition: prsht.h:215
LPARAM lParam
Definition: prsht.h:227
LPCWSTR pszTemplate
Definition: prsht.h:218
LPCWSTR pszTitle
Definition: prsht.h:225
HINSTANCE hInstance
Definition: prsht.h:216
Definition: tftpd.h:60
Definition: parser.c:56
HANDLE WINAPI DECLSPEC_HOTPATCH CreateSemaphoreW(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, IN LONG lInitialCount, IN LONG lMaximumCount, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:444
LPCWSTR lpszWinIni
Definition: systempage.cpp:24
INT_PTR CALLBACK WinPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: systempage.cpp:882
LPCWSTR lpszSystemIni
Definition: systempage.cpp:23
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
INT_PTR CALLBACK ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: toolspage.c:56
#define SetWindowLongPtr
Definition: treelist.c:70
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
int32_t INT_PTR
Definition: typedefs.h:64
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
LONG_PTR LPARAM
Definition: windef.h:208
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define SW_SHOWNORMAL
Definition: winuser.h:770
BOOL WINAPI IsWindow(_In_opt_ HWND)
#define MF_BYCOMMAND
Definition: winuser.h:202
#define WM_SYSCOMMAND
Definition: winuser.h:1741
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define CallWindowProc
Definition: winuser.h:5735
#define IDCANCEL
Definition: winuser.h:831
#define DWLP_DLGPROC
Definition: winuser.h:871
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
#define IMAGE_ICON
Definition: winuser.h:212
#define WS_EX_APPWINDOW
Definition: winuser.h:383
#define WS_EX_CONTROLPARENT
Definition: winuser.h:387
#define LR_COPYFROMRESOURCE
Definition: winuser.h:1099
#define DialogBoxW(i, t, p, f)
Definition: winuser.h:4399
BOOL WINAPI InsertMenuW(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)
#define WM_COMMAND
Definition: winuser.h:1740
#define MF_STRING
Definition: winuser.h:138
BOOL WINAPI SetForegroundWindow(_In_ HWND)
HANDLE WINAPI LoadImageW(_In_opt_ HINSTANCE hInst, _In_ LPCWSTR name, _In_ UINT type, _In_ int cx, _In_ int cy, _In_ UINT fuLoad)
Definition: cursoricon.c:2234
#define SM_CYSMICON
Definition: winuser.h:1013
#define DS_MODALFRAME
Definition: winuser.h:375
#define WM_INITDIALOG
Definition: winuser.h:1739
HMENU WINAPI GetSystemMenu(_In_ HWND, _In_ BOOL)
HANDLE WINAPI CopyImage(_In_ HANDLE, _In_ UINT, _In_ int, _In_ int, _In_ UINT)
Definition: cursoricon.c:2018
#define IDOK
Definition: winuser.h:830
#define DS_SHELLFONT
Definition: winuser.h:381
#define SM_CXSMICON
Definition: winuser.h:1012
#define MF_ENABLED
Definition: winuser.h:128
#define MF_SEPARATOR
Definition: winuser.h:137
BOOL WINAPI DrawMenuBar(_In_ HWND)
struct DLGTEMPLATE * LPDLGTEMPLATE
#define DS_CENTER
Definition: winuser.h:369
#define SC_CLOSE
Definition: winuser.h:2592
#define LR_SHARED
Definition: winuser.h:1100
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)
#define WM_DESTROY
Definition: winuser.h:1609
#define LR_DEFAULTSIZE
Definition: winuser.h:1094
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2906
BOOL WINAPI DestroyAcceleratorTable(_In_ HACCEL)
BOOL WINAPI DestroyWindow(_In_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2084
static void Initialize()
Definition: xlate.c:212
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
CHAR * LPTSTR
Definition: xmlstorage.h:192
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185