ReactOS 0.4.15-dev-8102-g108db8f
msconfig.c File Reference
#include "precomp.h"
#include "fileutils.h"
#include "utils.h"
#include "generalpage.h"
#include "systempage.h"
#include "freeldrpage.h"
#include "srvpage.h"
#include "toolspage.h"
#include <pshpack1.h>
#include <poppack.h>
Include dependency graph for msconfig.c:

Go to the source code of this file.

Classes

struct  DLGTEMPLATEEX
 

Typedefs

typedef struct DLGTEMPLATEEX DLGTEMPLATEEX
 
typedef struct DLGTEMPLATEEXLPDLGTEMPLATEEX
 

Functions

HWND hSingleWnd __attribute__ ((section("MSConfigInstance"), shared))
 
INT_PTR CALLBACK About (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 
LRESULT CALLBACK MainWndProc (HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
 
int CALLBACK PropSheetCallback (HWND hDlg, UINT message, LPARAM lParam)
 
HWND CreatePropSheet (HINSTANCE hInstance, HWND hwndOwner, LPCTSTR lpszTitle)
 
BOOL Initialize (HINSTANCE hInstance)
 
VOID Cleanup (VOID)
 
int APIENTRY _tWinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
 

Variables

BOOL bIsWindows = FALSE
 
BOOL bIsPreVistaOSVersion = TRUE
 
const LPCWSTR IDS_REACTOS = L"ReactOS"
 
const LPCWSTR IDS_MICROSOFT = L"Microsoft"
 
const LPCWSTR IDS_WINDOWS = L"Windows"
 
HINSTANCE hInst = NULL
 
LPWSTR szAppName = NULL
 
HWND hMainWnd
 
HWND hTabWnd
 
HICON hIcon = NULL
 
HICON hIconSm = NULL
 
WNDPROC wpOrigEditProc = NULL
 

Typedef Documentation

◆ DLGTEMPLATEEX

◆ LPDLGTEMPLATEEX

Function Documentation

◆ __attribute__()

HWND hSingleWnd __attribute__ ( (section("MSConfigInstance"), shared)  )

◆ _tWinMain()

int APIENTRY _tWinMain ( HINSTANCE  hInstance,
HINSTANCE  hPrevInstance,
LPTSTR  lpCmdLine,
int  nCmdShow 
)

Definition at line 407 of file msconfig.c.

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}
#define msg(x)
Definition: auth_time.c:54
#define IDR_MSCONFIG
Definition: resource.h:154
HINSTANCE hInstance
Definition: charmap.c:19
#define NULL
Definition: types.h:112
static const WCHAR Cleanup[]
Definition: register.c:80
HWND hMainWnd
Definition: msconfig.c:21
LPWSTR szAppName
Definition: msconfig.c:40
HWND CreatePropSheet(HINSTANCE hInstance, HWND hwndOwner, LPCTSTR lpszTitle)
Definition: msconfig.c:209
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
#define PropSheet_IsDialogMessage(d, m)
Definition: prsht.h:347
#define PropSheet_GetCurrentPageHwnd(d)
Definition: prsht.h:345
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1829
BOOL WINAPI IsWindow(_In_opt_ HWND)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
HACCEL WINAPI LoadAcceleratorsW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
int WINAPI TranslateAcceleratorW(_In_ HWND, _In_ HACCEL, _In_ LPMSG)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
BOOL WINAPI DestroyAcceleratorTable(_In_ HACCEL)
BOOL WINAPI DestroyWindow(_In_ HWND)
static void Initialize()
Definition: xlate.c:212

◆ About()

INT_PTR CALLBACK About ( HWND  hDlg,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 49 of file msconfig.c.

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}
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define LOWORD(l)
Definition: pedump.c:82
Definition: tftpd.h:60
int32_t INT_PTR
Definition: typedefs.h:64
#define IDCANCEL
Definition: winuser.h:831
#define WM_COMMAND
Definition: winuser.h:1740
#define WM_INITDIALOG
Definition: winuser.h:1739
#define IDOK
Definition: winuser.h:830
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)

Referenced by MainWndProc().

◆ Cleanup()

VOID Cleanup ( VOID  )

Definition at line 399 of file msconfig.c.

400{
402
403 // // Close the sentry semaphore.
404 // CloseHandle(hSemaphore);
405}
BOOL MemFree(IN PVOID lpMem)
Definition: utils.c:26

◆ CreatePropSheet()

HWND CreatePropSheet ( HINSTANCE  hInstance,
HWND  hwndOwner,
LPCTSTR  lpszTitle 
)

Definition at line 209 of file msconfig.c.

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}
INT_PTR CALLBACK SystemPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: system.c:393
#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_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 IDS_TAB_BOOT
Definition: resource.h:50
VOID ClipOrCenterWindowToMonitor(HWND hWnd, UINT flags)
Definition: utils.c:216
#define MONITOR_CENTER
Definition: utils.h:67
#define MONITOR_WORKAREA
Definition: utils.h:69
INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW lppsh)
Definition: propsheet.c:2913
HANDLE HWND
Definition: compat.h:19
unsigned long DWORD
Definition: ntddk_ex.h:95
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
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
BOOL bIsPreVistaOSVersion
Definition: msconfig.c:32
int CALLBACK PropSheetCallback(HWND hDlg, UINT message, LPARAM lParam)
Definition: msconfig.c:139
BOOL bIsWindows
Definition: msconfig.c:31
#define PSP_HASHELP
Definition: prsht.h:28
#define PSH_MODELESS
Definition: prsht.h:50
#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 PSH_PROPSHEETPAGE
Definition: prsht.h:43
INT_PTR CALLBACK ServicesPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: srvpage.c:22
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
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
INT_PTR CALLBACK ToolsPageWndProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
Definition: toolspage.c:56
LONG_PTR LPARAM
Definition: windef.h:208
#define SW_SHOWNORMAL
Definition: winuser.h:770
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

Referenced by _tWinMain().

◆ Initialize()

BOOL Initialize ( HINSTANCE  hInstance)

Definition at line 341 of file msconfig.c.

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}
#define IDS_MSCONFIG
Definition: resource.h:114
#define IDS_MSCONFIG_2
Definition: resource.h:148
BOOL IsPreVistaOSVersion(VOID)
Definition: utils.c:275
BOOL IsWindowsOS(VOID)
Definition: utils.c:226
#define LoadResourceString(hInst, uID)
Definition: utils.h:48
BOOL WINAPI InitCommonControlsEx(const INITCOMMONCONTROLSEX *lpInitCtrls)
Definition: commctrl.c:893
#define CloseHandle
Definition: compat.h:739
@ Success
Definition: eventcreate.c:712
unsigned int BOOL
Definition: ntddk_ex.h:94
#define ERROR_ALREADY_EXISTS
Definition: disk.h:80
static VOID InitControls(HWND hwnd)
Definition: mplay32.c:303
HINSTANCE hInst
Definition: msconfig.c:19
#define L(x)
Definition: ntvdm.h:50
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
HANDLE WINAPI DECLSPEC_HOTPATCH CreateSemaphoreW(IN LPSECURITY_ATTRIBUTES lpSemaphoreAttributes OPTIONAL, IN LONG lInitialCount, IN LONG lMaximumCount, IN LPCWSTR lpName OPTIONAL)
Definition: synch.c:444
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
BOOL WINAPI SetForegroundWindow(_In_ HWND)
HWND WINAPI FindWindowW(_In_opt_ LPCWSTR, _In_opt_ LPCWSTR)
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ MainWndProc()

LRESULT CALLBACK MainWndProc ( HWND  hWnd,
UINT  uMessage,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 70 of file msconfig.c.

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}
#define IDD_ABOUTBOX
Definition: resource.h:8
HWND hWnd
Definition: settings.c:17
#define IDM_ABOUT
Definition: resource.h:29
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
WNDPROC wpOrigEditProc
Definition: msconfig.c:45
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define SetWindowLongPtr
Definition: treelist.c:70
#define WM_SYSCOMMAND
Definition: winuser.h:1741
#define CallWindowProc
Definition: winuser.h:5735
#define DWLP_DLGPROC
Definition: winuser.h:871
#define DialogBoxW(i, t, p, f)
Definition: winuser.h:4399
#define WM_DESTROY
Definition: winuser.h:1609
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2084

Referenced by PropSheetCallback().

◆ PropSheetCallback()

int CALLBACK PropSheetCallback ( HWND  hDlg,
UINT  message,
LPARAM  lParam 
)

Definition at line 139 of file msconfig.c.

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}
Arabic default style
Definition: afstyles.h:94
#define IDS_ABOUT
Definition: resource.h:29
#define IDI_APPICON
Definition: resource.h:166
#define assert(x)
Definition: debug.h:53
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
struct DLGTEMPLATEEX * LPDLGTEMPLATEEX
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
Definition: msconfig.c:70
#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 PSCB_PRECREATE
Definition: prsht.h:76
#define PSCB_INITIALIZED
Definition: prsht.h:75
WORD signature
Definition: msconfig.c:127
DWORD exStyle
Definition: msconfig.c:129
DWORD style
Definition: msconfig.c:130
DWORD style
Definition: winuser.h:3059
DWORD dwExtendedStyle
Definition: winuser.h:3060
#define ICON_BIG
Definition: tnclass.cpp:51
#define ICON_SMALL
Definition: tnclass.cpp:48
#define MF_BYCOMMAND
Definition: winuser.h:202
#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
BOOL WINAPI InsertMenuW(_In_ HMENU, _In_ UINT, _In_ UINT, _In_ UINT_PTR, _In_opt_ LPCWSTR)
#define MF_STRING
Definition: winuser.h:138
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
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 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
#define LR_DEFAULTSIZE
Definition: winuser.h:1094
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
Definition: winuser.h:2906
int WINAPI GetSystemMetrics(_In_ int)
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by CreatePropSheet().

Variable Documentation

◆ bIsPreVistaOSVersion

BOOL bIsPreVistaOSVersion = TRUE

Definition at line 32 of file msconfig.c.

Referenced by AddService(), CreatePropSheet(), Initialize(), and ServicesPageWndProc().

◆ bIsWindows

◆ hIcon

HICON hIcon = NULL

Definition at line 44 of file msconfig.c.

Referenced by AboutDialogProc(), IconCache::add(), TrayIcon::Add(), COpenWithDialog::AddApp(), COpenWithMenu::AddApp(), CAppsListView::AddApplication(), CSideTreeView::AddCategory(), CStaticIconList::AddIcon(), AddListViewItems(), AddOrUpdateHwnd(), BitmapFromIcon(), BuildLeftPopupMenu(), cicGetIconBitmaps(), cicGetIconSize(), ClickLockProc(), CopyIcon(), create_bitmap_from_icon(), create_small_bitmap_from_icon(), CreateDialogProc(), CreateHelpDialogProc(), CreateIcon(), CreateIconFromResourceEx(), CreateLayoutIcon(), CShellLink::CreateShortcutIcon(), CreateTrayIcon(), DefWndSetIcon(), DeleteDialogProc(), DesktopOnInitDialog(), DesktopPageProc(), DestroyIcon(), DestroyIconList(), DisconnectDlgProc(), DoExtractIcon(), DrawCaptionTempA(), DrawCaptionTempW(), DrawIcon(), DrawIconEx(), DuplicateIcon(), EnumerateCallback(), EnumPickIconResourceProc(), EnumWindowsProc(), TaskBar::EnumWndProc(), IconCache::extract(), ExtractAssociatedIconA(), ExtractAssociatedIconW(), ExtractIconW(), FD31_WMDrawItem(), CFileDefExt::GeneralPageProc(), get_icon_size(), get_window_icon_big(), get_window_icon_small(), GetGeneralGroupData(), CLBarInatItem::GetIcon(), GetIconFromFile(), GetIconInfo(), CUIFButton::GetIconSize(), GetUserMembershipData(), CTaskSwitchWnd::GetWndIcon(), Ghost_GetIcon(), GuiChangeIcon(), CSendToMenu::HandleMenuMsg2(), CNewMenu::HandleMenuMsg2(), COpenWithMenu::IconToBitmap(), ImageList_AddAlphaIcon(), ImageList_AddIcon(), ImageList_GetIcon(), ImageList_ReplaceIcon(), ImageListImpl_GetIcon(), InatAddIcon(), InatCreateIconBySize(), CCompButtonFrameWindow::Init(), CDefCompFrameWindow::Init(), InitDialog(), initDialog(), CDrvDefExt::InitGeneralPage(), InitGroupMembersList(), InitializeDxDiagDialog(), MLNGINFO::InitIcon(), InitImageList(), CLBarInatItem::InitMenu(), CFileDefExt::InitOpensWithField(), InitUserGroupsList(), IWICImagingFactory_CreateBitmapFromHICON_Proxy_W(), LangBarInsertMenu(), LoadShellLinkConsoleInfo(), MainWndProc(), MD_OnSetIcon(), MD_Static_OnSetIcon(), MDI_AugmentFrameMenu(), TrayIcon::Modify(), msi_listview_add_item(), NC_IconForWindow(), CSysTray::NotifyIcon(), NtUserDrawCaptionTemp(), NtUserDrawIconEx(), OleIconToCursor(), OleMetafilePictFromIconAndLabel(), OnCommandAbout(), OnGroupsPageInitDialog(), OnInitDialog(), CConfirmReplace::OnInitDialog(), OnPaint(), CUIFIcon::operator=(), OSK_SetImage(), PickIconProc(), PrivateExtractIconExW(), ProductPageDlgProc(), PROGRAM_AddProgram(), PROGRAM_NewProgram(), propsheet_callback(), PROPSHEET_CollectPageInfo(), PROPSHEET_DialogProc(), PropSheetCallback(), PropSheetProc(), RunFileDlg(), CZipExtract::s_PropSheetCallbackProc(), serializeIcon(), TrayIcon::Set(), SetConsoleIcon(), CUIFButton::SetIcon(), CUIFToolbarButton::SetIcon(), ATL::CWindow::SetIcon(), SetIcon(), CTrayIconWnd::SetIcon(), CUserNotification::SetIconInfo(), CTrayIconWnd::SetMainIcon(), SetupDiGetClassImageListExW(), SetupDiLoadClassIcon(), SetWindowIcon(), SHELL_ConfirmDialogW(), SHELL_ConfirmMsgBox(), ShellAboutA(), ShellAboutW(), SoftModalMessageBox(), START_TEST(), StartMenuCtrl::StartMenuCtrl(), STATIC_PaintIconfn(), STATIC_WindowProc(), StaticWndProc_common(), STATUSBAR_SetIcon(), TaskManager_OnFileNew(), test_CreateIcon(), test_fromhicon(), test_icon_info_dbg(), test_marshal_HICON(), Test_OneParamRoutine_CreateEmptyCurObject(), test_pack_NOTIFYICONDATAA(), test_pack_NOTIFYICONDATAW(), test_pack_SHFILEINFOA(), test_pack_SHFILEINFOW(), test_pack_WNDCLASSA(), test_pack_WNDCLASSEXA(), test_pack_WNDCLASSEXW(), test_pack_WNDCLASSW(), test_status_control(), ThemeDrawCaption(), TOOLTIPS_GetTitleIconIndex(), TrayIcon_Update(), UpdateLanStatus(), User32DefWindowProc(), UserDrawCaption(), UserGetWindowIcon(), WINHELP_CreateHelpWindow(), WndProc(), CCompFinalizeButton::~CCompFinalizeButton(), and COpenWithList::~COpenWithList().

◆ hIconSm

◆ hInst

HINSTANCE hInst = NULL

Definition at line 39 of file msconfig.c.

◆ hMainWnd

HWND hMainWnd

Definition at line 41 of file msconfig.c.

◆ hTabWnd

HWND hTabWnd

Definition at line 43 of file msconfig.c.

◆ IDS_MICROSOFT

const LPCWSTR IDS_MICROSOFT = L"Microsoft"

Definition at line 36 of file msconfig.c.

Referenced by AddService(), and ServicesPageWndProc().

◆ IDS_REACTOS

const LPCWSTR IDS_REACTOS = L"ReactOS"

Definition at line 35 of file msconfig.c.

◆ IDS_WINDOWS

const LPCWSTR IDS_WINDOWS = L"Windows"

Definition at line 37 of file msconfig.c.

Referenced by RequiredServicesDisablingDialogWndProc().

◆ szAppName

LPWSTR szAppName = NULL

Definition at line 40 of file msconfig.c.

Referenced by _tWinMain(), Cleanup(), and Initialize().

◆ wpOrigEditProc

WNDPROC wpOrigEditProc = NULL

Definition at line 45 of file msconfig.c.

Referenced by MainWndProc(), and PropSheetCallback().