ReactOS 0.4.15-dev-7958-gcd0bb1a
precomp.h File Reference
#include <stdarg.h>
#include <ntstatus.h>
#include <windef.h>
#include <winbase.h>
#include <winreg.h>
#include <wingdi.h>
#include <wincon.h>
#include <windowsx.h>
#include <tchar.h>
#include <shellapi.h>
#include <shlobj.h>
#include <shlwapi.h>
#include <setupapi.h>
#include <cpl.h>
#include <strsafe.h>
#include "resource.h"
Include dependency graph for precomp.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _APPLET
 

Macros

#define _INC_WINDOWS
 
#define COM_NO_WINDOWS_H
 
#define WIN32_NO_STATUS
 
#define NUM_APPLETS   (1)
 
#define MAX_STR_LENGTH   256
 

Typedefs

typedef struct _APPLET APPLET
 
typedef struct _APPLETPAPPLET
 

Functions

void ShowLastWin32Error (HWND hWndOwner)
 
INT_PTR CALLBACK GeneralPageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK HardwarePageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK AdvancedPageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK HardProfDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK UserProfileDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK EnvironmentDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK StartRecDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK VirtMemDlgProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK LicenceDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
 
BOOL GetSystemName (PWSTR pBuf, SIZE_T cchBuf)
 
INT __cdecl ResourceMessageBox (_In_opt_ HINSTANCE hInstance, _In_opt_ HWND hwnd, _In_ UINT uType, _In_ UINT uCaption, _In_ UINT uText,...)
 

Variables

HINSTANCE hApplet
 

Macro Definition Documentation

◆ _INC_WINDOWS

#define _INC_WINDOWS

Definition at line 6 of file precomp.h.

◆ COM_NO_WINDOWS_H

#define COM_NO_WINDOWS_H

Definition at line 7 of file precomp.h.

◆ MAX_STR_LENGTH

#define MAX_STR_LENGTH   256

Definition at line 58 of file precomp.h.

◆ NUM_APPLETS

#define NUM_APPLETS   (1)

Definition at line 28 of file precomp.h.

◆ WIN32_NO_STATUS

#define WIN32_NO_STATUS

Definition at line 10 of file precomp.h.

Typedef Documentation

◆ APPLET

◆ PAPPLET

typedef struct _APPLET * PAPPLET

Function Documentation

◆ AdvancedPageProc()

INT_PTR CALLBACK AdvancedPageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 422 of file advanced.c.

426{
427 PGLOBALDATA pGlobalData;
428
429 pGlobalData = (PGLOBALDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
430
431 switch (uMsg)
432 {
433 case WM_INITDIALOG:
434 pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
435 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
436
437 InitLanguagesList(hwndDlg, pGlobalData);
438 InitCodePagesList(hwndDlg);
439 break;
440
441 case WM_COMMAND:
442 switch (LOWORD(wParam))
443 {
446 {
447 LCID lcid;
448 INT iIndex;
449
450 iIndex = SendMessage(hLangList, CB_GETCURSEL, 0, 0);
451 if (iIndex == CB_ERR)
452 break;
453
454 lcid = SendMessage(hLangList, CB_GETITEMDATA, iIndex, 0);
455 if (lcid == (LCID)CB_ERR)
456 break;
457
458 pGlobalData->SystemLCID = lcid;
459
460 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
461 }
462 break;
463
465 if (HIWORD(wParam) == BN_CLICKED)
466 {
468 {
469 ResourceMessageBox(hwndDlg,
473 pGlobalData->bApplyToDefaultUser = TRUE;
474 }
475 else
476 {
477 pGlobalData->bApplyToDefaultUser = FALSE;
478 }
479
480 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
481 }
482 break;
483 }
484 break;
485
486 case WM_NOTIFY:
487 if (((LPNMHDR)lParam)->code == PSN_APPLY)
488 {
489 PropSheet_UnChanged(GetParent(hwndDlg), hwndDlg);
490
491 SaveSystemSettings(pGlobalData);
492 SaveFontSubstitutionSettings(hwndDlg, pGlobalData);
493 SaveFontLinkingSettings(hwndDlg, pGlobalData);
494 }
495 else if (((LPNMHDR)lParam)->idFrom == IDC_CONV_TABLES &&
497 {
498 SetWindowLongPtr(hwndDlg,
501 return TRUE;
502 }
503 break;
504 }
505
506 return FALSE;
507}
VOID ResourceMessageBox(HINSTANCE hInstance, HWND hwnd, UINT uType, UINT uCaptionId, UINT uMessageId)
Definition: misc.c:282
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static HWND hLangList
Definition: advanced.c:21
LRESULT ListViewCustomDraw(LPARAM lParam)
Definition: advanced.c:393
static VOID SaveFontLinkingSettings(HWND hwnd, PGLOBALDATA pGlobalData)
Definition: advanced.c:328
static VOID InitLanguagesList(HWND hwndDlg, PGLOBALDATA pGlobalData)
Definition: advanced.c:237
static VOID SaveSystemSettings(PGLOBALDATA pGlobalData)
Definition: advanced.c:338
static VOID InitCodePagesList(HWND hwndDlg)
Definition: advanced.c:114
static VOID SaveFontSubstitutionSettings(HWND hwnd, PGLOBALDATA pGlobalData)
Definition: advanced.c:289
#define IDC_CONV_TABLES
Definition: resource.h:69
#define IDS_APPLY_DEFAULT_TITLE
Definition: resource.h:93
#define IDC_APPLY_CUR_USER_DEF_PROFILE
Definition: resource.h:68
#define IDC_LANGUAGE_COMBO
Definition: resource.h:53
#define IDS_APPLY_DEFAULT_TEXT
Definition: resource.h:94
struct _GLOBALDATA * PGLOBALDATA
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define LOWORD(l)
Definition: pedump.c:82
#define PropSheet_Changed(d, w)
Definition: prsht.h:344
#define PropSheet_UnChanged(d, w)
Definition: prsht.h:358
#define PSN_APPLY
Definition: prsht.h:117
#define LPPROPSHEETPAGE
Definition: prsht.h:390
#define NM_CUSTOMDRAW
Definition: commctrl.h:137
#define WM_NOTIFY
Definition: richedit.h:61
DWORD LCID
Definition: nls.h:13
BOOL bApplyToDefaultUser
Definition: intl.h:116
LCID SystemLCID
Definition: intl.h:114
Definition: inflate.c:139
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
int32_t INT
Definition: typedefs.h:58
#define HIWORD(l)
Definition: typedefs.h:247
#define DWLP_USER
Definition: winuser.h:872
#define WM_COMMAND
Definition: winuser.h:1740
#define CB_ERR
Definition: winuser.h:2435
#define WM_INITDIALOG
Definition: winuser.h:1739
#define CBN_SELCHANGE
Definition: winuser.h:1979
LRESULT WINAPI SendDlgItemMessageW(_In_ HWND, _In_ int, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CB_GETITEMDATA
Definition: winuser.h:1950
#define SendMessage
Definition: winuser.h:5843
#define MB_OK
Definition: winuser.h:790
#define MB_ICONWARNING
Definition: winuser.h:786
HWND WINAPI GetParent(_In_ HWND)
#define DWLP_MSGRESULT
Definition: winuser.h:870
#define BN_CLICKED
Definition: winuser.h:1925
#define CB_GETCURSEL
Definition: winuser.h:1943
#define BM_GETCHECK
Definition: winuser.h:1918

Referenced by Applet(), MainPageProc(), and SystemApplet().

◆ EnvironmentDlgProc()

INT_PTR CALLBACK EnvironmentDlgProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 1823 of file environment.c.

1827{
1830
1831 switch (uMsg)
1832 {
1833 case WM_INITDIALOG:
1834 {
1835 RECT rect;
1836
1837 DlgData = GlobalAlloc(GPTR, sizeof(ENVIRONMENT_DIALOG_DATA));
1838 if (!DlgData)
1839 {
1840 EndDialog(hwndDlg, 0);
1841 return (INT_PTR)TRUE;
1842 }
1843 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)DlgData);
1844
1845 GetClientRect(hwndDlg, &rect);
1846 DlgData->cxOld = rect.right - rect.left;
1847 DlgData->cyOld = rect.bottom - rect.top;
1848
1849 GetWindowRect(hwndDlg, &rect);
1850 DlgData->cxMin = rect.right - rect.left;
1851 DlgData->cyMin = rect.bottom - rect.top;
1852
1853 OnInitEnvironmentDialog(hwndDlg);
1854 break;
1855 }
1856
1857 case WM_SIZE:
1858 {
1859 OnEnvironmentDlgResize(hwndDlg, DlgData, LOWORD(lParam), HIWORD(lParam));
1860 SetWindowLongPtrW(hwndDlg, DWLP_MSGRESULT, 0);
1861 return TRUE;
1862 }
1863
1864 case WM_SIZING:
1865 {
1866 /* Forbid resizing the dialog smaller than its minimal size */
1867 PRECT pRect = (PRECT)lParam;
1868
1869 if ((wParam == WMSZ_LEFT) || (wParam == WMSZ_TOPLEFT) || (wParam == WMSZ_BOTTOMLEFT))
1870 {
1871 if (pRect->right - pRect->left < DlgData->cxMin)
1872 pRect->left = pRect->right - DlgData->cxMin;
1873 }
1874 else
1876 {
1877 if (pRect->right - pRect->left < DlgData->cxMin)
1878 pRect->right = pRect->left + DlgData->cxMin;
1879 }
1880
1881 if ((wParam == WMSZ_TOP) || (wParam == WMSZ_TOPLEFT) || (wParam == WMSZ_TOPRIGHT))
1882 {
1883 if (pRect->bottom - pRect->top < DlgData->cyMin)
1884 pRect->top = pRect->bottom - DlgData->cyMin;
1885 }
1886 else
1888 {
1889 if (pRect->bottom - pRect->top < DlgData->cyMin)
1890 pRect->bottom = pRect->top + DlgData->cyMin;
1891 }
1892
1894 return TRUE;
1895 }
1896
1897 case WM_COMMAND:
1898 switch (LOWORD(wParam))
1899 {
1902 return TRUE;
1903
1906 return TRUE;
1907
1910 return TRUE;
1911
1914 return TRUE;
1915
1918 return TRUE;
1919
1922 return TRUE;
1923
1924 case IDOK:
1928 0, (LPARAM)_T("Environment"));
1929 EndDialog(hwndDlg, 0);
1930 return TRUE;
1931
1932 case IDCANCEL:
1933 EndDialog(hwndDlg, 0);
1934 return TRUE;
1935 }
1936 break;
1937
1938 case WM_DESTROY:
1941 GlobalFree(DlgData);
1942 break;
1943
1944 case WM_NOTIFY:
1945 return OnNotify(hwndDlg, (NMHDR*)lParam);
1946 }
1947
1948 return FALSE;
1949}
static VOID OnNewVariable(HWND hwndDlg, INT iDlgItem)
Definition: environment.c:1215
static VOID OnEnvironmentDlgResize(HWND hwndDlg, PENVIRONMENT_DIALOG_DATA DlgData, DWORD cx, DWORD cy)
Definition: environment.c:1382
static BOOL OnNotify(HWND hwndDlg, NMHDR *phdr)
Definition: environment.c:1793
struct _ENVIRONMENT_DIALOG_DATA * PENVIRONMENT_DIALOG_DATA
static VOID SetAllVars(HWND hwndDlg, INT iDlgItem)
Definition: environment.c:1657
static VOID OnEditVariable(HWND hwndDlg, INT iDlgItem)
Definition: environment.c:1270
static VOID OnDeleteVariable(HWND hwndDlg, INT iDlgItem)
Definition: environment.c:1333
static VOID OnInitEnvironmentDialog(HWND hwndDlg)
Definition: environment.c:1170
static VOID ReleaseListViewItems(HWND hwndDlg, INT iDlgItem)
Definition: environment.c:1615
#define IDC_SYSTEM_VARIABLE_EDIT
Definition: resource.h:135
#define IDC_SYSTEM_VARIABLE_LIST
Definition: resource.h:133
#define IDC_SYSTEM_VARIABLE_NEW
Definition: resource.h:134
#define IDC_USER_VARIABLE_DELETE
Definition: resource.h:132
#define IDC_SYSTEM_VARIABLE_DELETE
Definition: resource.h:136
#define IDC_USER_VARIABLE_LIST
Definition: resource.h:129
#define IDC_USER_VARIABLE_NEW
Definition: resource.h:130
#define IDC_USER_VARIABLE_EDIT
Definition: resource.h:131
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
Definition: heapmem.c:611
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:368
& rect
Definition: startmenu.cpp:1413
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
int32_t INT_PTR
Definition: typedefs.h:64
#define _T(x)
Definition: vfdio.h:22
#define PRECT
Definition: precomp.h:27
#define GPTR
Definition: winbase.h:296
LONG_PTR LPARAM
Definition: windef.h:208
#define WMSZ_BOTTOMRIGHT
Definition: winuser.h:2471
#define WMSZ_BOTTOMLEFT
Definition: winuser.h:2470
#define IDCANCEL
Definition: winuser.h:831
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
#define WM_SIZE
Definition: winuser.h:1611
#define HWND_BROADCAST
Definition: winuser.h:1204
#define WM_WININICHANGE
Definition: winuser.h:1630
#define WMSZ_TOP
Definition: winuser.h:2466
#define WMSZ_LEFT
Definition: winuser.h:2464
#define IDOK
Definition: winuser.h:830
#define WMSZ_TOPLEFT
Definition: winuser.h:2467
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
#define WMSZ_TOPRIGHT
Definition: winuser.h:2468
#define WMSZ_BOTTOM
Definition: winuser.h:2469
#define WM_SIZING
Definition: winuser.h:1807
#define WMSZ_RIGHT
Definition: winuser.h:2465
#define WM_DESTROY
Definition: winuser.h:1609
#define SetWindowLongPtrW
Definition: winuser.h:5346
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)

Referenced by AdvancedPageProc().

◆ GeneralPageProc()

INT_PTR CALLBACK GeneralPageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 327 of file propsheet_general.c.

331{
332 PPAGEDATA pPageData;
333
334 /* Get the window context */
335 pPageData = (PPAGEDATA)GetWindowLongPtr(hwndDlg,
337 if (pPageData == NULL && uMsg != WM_INITDIALOG)
338 {
339 return FALSE;
340 }
341
342 switch (uMsg)
343 {
344 case WM_INITDIALOG:
345 pPageData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(PAGEDATA));
346 if (pPageData != NULL)
347 {
348 SetWindowLongPtr(hwndDlg,
350 (LONG_PTR)pPageData);
351
352 pPageData->dlgInfo = (PSERVICEPROPSHEET)(((LPPROPSHEETPAGE)lParam)->lParam);
353 if (pPageData->dlgInfo != NULL)
354 {
355 InitGeneralPage(pPageData->dlgInfo, hwndDlg);
356 SetButtonStates(pPageData->dlgInfo, hwndDlg);
357 }
358 }
359 break;
360
361 case WM_DESTROY:
362 HeapFree(GetProcessHeap(), 0, pPageData);
363 break;
364
365 case WM_COMMAND:
366 switch(LOWORD(wParam))
367 {
368 case IDC_START_TYPE:
370 {
371 pPageData->bStartTypeChanged = TRUE;
372 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
373 }
374 break;
375
376 case IDC_DISP_NAME:
377 if (HIWORD(wParam) == EN_CHANGE)
378 {
379 pPageData->bDisplayNameChanged = TRUE;
380 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
381 }
382 break;
383
384 case IDC_DESCRIPTION:
385 if (HIWORD(wParam) == EN_CHANGE)
386 {
387 pPageData->bDescriptionChanged = TRUE;
388 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
389 }
390 break;
391
392 case IDC_EXEPATH:
393 if (HIWORD(wParam) == EN_CHANGE)
394 {
395 pPageData->bBinaryPathChanged = TRUE;
396 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
397 }
398 break;
399
400 case IDC_START:
401 {
402 WCHAR szStartParams[256];
403 LPWSTR lpStartParams = NULL;
404
405 if (GetDlgItemText(hwndDlg, IDC_START_PARAM, szStartParams, 256) > 0)
406 lpStartParams = szStartParams;
407
409
410 RunActionWithProgress(hwndDlg,
411 pPageData->dlgInfo->pService->lpServiceName,
412 pPageData->dlgInfo->pService->lpDisplayName,
414 lpStartParams);
415
417 ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
418 SetButtonStates(pPageData->dlgInfo, hwndDlg);
419 SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
420 break;
421 }
422
423 case IDC_STOP:
424 RunActionWithProgress(hwndDlg,
425 pPageData->dlgInfo->pService->lpServiceName,
426 pPageData->dlgInfo->pService->lpDisplayName,
428 NULL);
429
431 ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
432 SetButtonStates(pPageData->dlgInfo, hwndDlg);
433 SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
434 break;
435
436 case IDC_PAUSE:
437 RunActionWithProgress(hwndDlg,
438 pPageData->dlgInfo->pService->lpServiceName,
439 pPageData->dlgInfo->pService->lpDisplayName,
441 NULL);
442
444 ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
445 SetButtonStates(pPageData->dlgInfo, hwndDlg);
446 SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
447 break;
448
449 case IDC_RESUME:
450 RunActionWithProgress(hwndDlg,
451 pPageData->dlgInfo->pService->lpServiceName,
452 pPageData->dlgInfo->pService->lpDisplayName,
454 NULL);
455
457 ChangeListViewText(pPageData->dlgInfo->Info, pPageData->dlgInfo->pService, LVSTATUS);
458 SetButtonStates(pPageData->dlgInfo, hwndDlg);
459 SetServiceStatusText(pPageData->dlgInfo, hwndDlg);
460 break;
461
462 case IDC_EDIT:
467 break;
468 }
469 break;
470
471 case WM_NOTIFY:
472 switch (((LPNMHDR)lParam)->code)
473 {
474 case PSN_APPLY:
475 if (pPageData->bDisplayNameChanged ||
476 pPageData->bDescriptionChanged ||
477 pPageData->bBinaryPathChanged ||
478 pPageData->bStartTypeChanged)
479 {
480 SaveDlgInfo(pPageData, hwndDlg);
481 SetButtonStates(pPageData->dlgInfo, hwndDlg);
482 pPageData->bDisplayNameChanged = FALSE;
483 pPageData->bDescriptionChanged = FALSE;
484 pPageData->bBinaryPathChanged = FALSE;
485 pPageData->bStartTypeChanged = FALSE;
486 }
487 break;
488 }
489 break;
490 }
491
492 return FALSE;
493}
#define IDC_PAUSE
Definition: resource.h:75
#define IDC_STOP
Definition: resource.h:69
VOID ChangeListViewText(PMAIN_WND_INFO Info, ENUM_SERVICE_STATUS_PROCESS *pService, UINT Column)
Definition: listview.c:105
#define ACTION_START
Definition: precomp.h:40
BOOL RunActionWithProgress(HWND hParent, LPWSTR ServiceName, LPWSTR DisplayName, UINT Action, PVOID Param)
Definition: progress.c:372
#define ACTION_PAUSE
Definition: precomp.h:42
BOOL UpdateServiceStatus(ENUM_SERVICE_STATUS_PROCESS *pService)
Definition: query.c:373
#define LVSTATUS
Definition: precomp.h:31
struct _SERVICEPROPSHEET * PSERVICEPROPSHEET
#define ACTION_STOP
Definition: precomp.h:41
#define ACTION_RESUME
Definition: precomp.h:43
#define IDC_DESCRIPTION
Definition: resource.h:129
#define IDC_START
Definition: resource.h:135
#define IDC_EXEPATH
Definition: resource.h:130
#define IDC_EDIT
Definition: resource.h:134
#define IDC_RESUME
Definition: resource.h:138
#define IDC_START_TYPE
Definition: resource.h:131
#define IDC_START_PARAM
Definition: resource.h:133
#define IDC_DISP_NAME
Definition: resource.h:128
#define NULL
Definition: types.h:112
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
static VOID InitGeneralPage(PSERVICEPROPSHEET dlgInfo, HWND hwndDlg)
static VOID SetButtonStates(PSERVICEPROPSHEET dlgInfo, HWND hwndDlg)
struct _PAGEDATA * PPAGEDATA
VOID SaveDlgInfo(PPAGEDATA pPageData, HWND hwndDlg)
static VOID SetServiceStatusText(PSERVICEPROPSHEET dlgInfo, HWND hwndDlg)
PSERVICEPROPSHEET dlgInfo
BOOL bDescriptionChanged
BOOL bDisplayNameChanged
BOOL bStartTypeChanged
BOOL bBinaryPathChanged
ENUM_SERVICE_STATUS_PROCESS * pService
Definition: precomp.h:132
PMAIN_WND_INFO Info
Definition: precomp.h:131
#define GWLP_USERDATA
Definition: treelist.c:63
#define EM_SETREADONLY
Definition: winuser.h:2015
#define GetDlgItemText
Definition: winuser.h:5785
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define SendDlgItemMessage
Definition: winuser.h:5842
#define EN_CHANGE
Definition: winuser.h:2022
__wchar_t WCHAR
Definition: xmlstorage.h:180
WCHAR * LPWSTR
Definition: xmlstorage.h:184

◆ GetSystemName()

BOOL GetSystemName ( PWSTR  pBuf,
SIZE_T  cchBuf 
)

Definition at line 490 of file smbios.c.

491{
492 static const VENDOR_LONG_NAME LongNames[] =
493 {
494 { L"ASUSTeK", L"ASUS" },
495 { L"First International Computer", L"FIC" },
496 { L"Hewlett-Packard", L"HP" },
497 { L"MICRO-STAR", L"MSI" },
498 { L"SGI.COM", L"SGI" },
499 { L"Silicon Graphics International", L"SGI" },
500 { L"Intel(R) Client Systems", L"Intel" },
501 { L"InformationComputerSystems", L"ICS" },
502 { L"Bernecker + Rainer Industrie-Elektronik", L"Bernecker & Rainer" },
503 { L"CHUWI INNOVATION AND TECHNOLOGY", L"CHUWI" },
504 { L"CHUWI INNOVATION LIMITED", L"CHUWI" },
505 { L"CHUWI INNOVATION LIMITED", L"CHUWI" },
506 { L"http://www.abit.com.tw/", L"ABIT" },
507 { L"http:\\\\www.abit.com.tw", L"ABIT" },
508 { L"www.abit.com.tw", L"ABIT" },
509 { L"CASPER BILGISAYAR SISTEMLERI A.S", L"Casper" },
510 { L"Colorful Technology And Development", L"Colorful" },
511 { L"Colorful Yu Gong Technology And Development", L"Colorful Yu Gong" },
512 { L"HaierComputer", L"Haier" },
513 { L"Haier Information Technology (Shen Zhen)", L"Haier" },
514 { L"HASEECOMPUTERS", L"Hasee" },
515 { L"HELIOS BUSINESS COMPUTER", L"HELIOS" },
516 { L"Shanghai Zongzhi InfoTech", L"Zongzhi" },
517 { L"TSING HUA TONGFANG CO.,LTD", L"TSINGHUA TONGFANG" },
518 { L"Yeston Digital Technology Co.,LTD", L"Yeston" },
519 };
520 static const REDUNDANT_WORD RedundantWords[] =
521 {
522 { L"Corporation", FALSE },
523 { L"Communication", FALSE },
524 { L"Computer", FALSE },
525 { L"Computers", FALSE },
526 { L"Group", FALSE },
527 { L"Cloud", FALSE },
528 { L"Center", FALSE },
529 { L"Systems", FALSE },
530 { L"Microsystems", FALSE },
531 { L"Infosystems", FALSE },
532 { L"Digital", FALSE },
533 { L"Electronics", FALSE },
534 { L"Electric", FALSE },
535 { L"Elektronik", FALSE },
536 { L"Software", FALSE },
537 { L"Foundation", FALSE },
538 { L"International", FALSE },
539 { L"Interantonal", FALSE }, // on purpose (some MSI boards)
540 { L"INTERANTIONAL", FALSE }, // on purpose (some MSI boards)
541 { L"Industrial", FALSE },
542 { L"Industrie", FALSE },
543 { L"Information", FALSE },
544 { L"Informatica", FALSE },
545 { L"Produkte", FALSE },
546 { L"Technology", FALSE },
547 { L"Tecohnology", FALSE }, // on purpose (some Gigabyte boards)
548 { L"Technologies", FALSE },
549 { L"Tecnologia", FALSE },
550 { L"Limited", FALSE },
551 { L"Int", FALSE },
552 { L"Inc", FALSE },
553 { L"Co", FALSE },
554 { L"Corp", FALSE },
555 { L"Crop", FALSE },
556 { L"LLC", FALSE },
557 { L"Ltd", FALSE },
558 { L"LTDA", FALSE },
559 { L"GmbH", FALSE },
560 { L"S.p.A", FALSE },
561 { L"A.S.", FALSE },
562 { L"S.A", FALSE },
563 { L"S.A.S", FALSE },
564 { L"S/A", FALSE },
565 { L"SA", FALSE },
566 { L"SAS", FALSE },
567 { L"BV", FALSE },
568 { L"AG", FALSE },
569 { L"OOO", TRUE },
570 { L"CJSC", FALSE },
571 { L"INT'L", FALSE },
572 { L"INTL", FALSE },
573 { L"plc", FALSE },
574 };
575 PVOID SMBiosBuf;
576 PCHAR DmiStrings[ID_STRINGS_MAX] = { 0 };
577 WCHAR ven[512], dev[512];
578 CHAR tmpstr[512];
579 BOOL bTrimProduct, bTrimFamily, bGenericName, bRemove;
580 UINT i;
581 PWCHAR j;
582
583 SMBiosBuf = LoadSMBiosData(DmiStrings);
584 if (!SMBiosBuf)
585 {
586 return FALSE;
587 }
588
589 TrimNonPrintable(DmiStrings[SYS_VENDOR]);
590 bTrimProduct = TrimNonPrintableProd(DmiStrings[SYS_PRODUCT]);
591 TrimNonPrintable(DmiStrings[SYS_VERSION]);
592 bTrimFamily = TrimNonPrintable(DmiStrings[SYS_FAMILY]);
593 TrimNonPrintable(DmiStrings[BOARD_VENDOR]);
594 TrimNonPrintable(DmiStrings[BOARD_NAME]);
595 TrimNonPrintable(DmiStrings[BOARD_VERSION]);
596
597 if (bTrimProduct)
598 {
599 if (DmiStrings[SYS_FAMILY] && !bTrimFamily)
600 {
601 DmiStrings[SYS_PRODUCT] = DmiStrings[SYS_FAMILY];
602 bTrimProduct = FALSE;
603 }
604 }
605
606 GetSMBiosStringW(DmiStrings[SYS_VENDOR], ven, _countof(ven), TRUE);
608 bGenericName = IsGenericSystemName(ven, dev, NULL) || bTrimProduct;
609
610 if (wcslen(dev) == 0 ||
611 !wcscmp(dev, ven) ||
612 bGenericName)
613 {
614 BOOL bGenericVen = FALSE, bRemoveVen = FALSE, bGenericDev = (wcslen(dev) == 0 || !wcscmp(dev, ven) || bTrimProduct);
615
616 if (bGenericName && IsGenericSystemName(ven, NULL, &bRemove))
617 {
618 if (bRemove)
619 {
620 *ven = 0;
621 }
622 bGenericVen = TRUE;
623 bRemoveVen = bRemove;
624 }
625 if (bGenericName && IsGenericSystemName(NULL, dev, &bRemove))
626 {
627 if (bRemove)
628 {
629 *dev = 0;
630 }
631 bGenericDev = TRUE;
632 }
633 // system strings are unusable, use board strings
634 if (DmiStrings[BOARD_VENDOR] != NULL || !bGenericName)
635 {
636 if ((DmiStrings[BOARD_VENDOR] &&
637 strlen(DmiStrings[BOARD_VENDOR]) >= 2 &&
638 strstr(DmiStrings[BOARD_VENDOR], " ") != DmiStrings[BOARD_VENDOR]) ||
639 bGenericVen)
640 {
641 GetSMBiosStringW(DmiStrings[BOARD_VENDOR], ven, _countof(ven), TRUE);
642 }
644
645 if (IsGenericSystemName(ven, NULL, &bRemove) && bRemove)
646 {
647 *ven = 0;
648
649 if (bGenericVen && !bRemoveVen)
650 {
651 GetSMBiosStringW(DmiStrings[SYS_VENDOR], ven, _countof(ven), TRUE);
652 }
653 }
654 if (IsGenericSystemName(NULL, dev, &bRemove) && bRemove)
655 {
656 *dev = 0;
657
658 if (!bGenericDev)
659 {
661 }
662 }
663 if (wcslen(dev) == 0 &&
664 DmiStrings[SYS_VERSION] != NULL)
665 {
667
668 if (IsGenericSystemName(NULL, dev, &bRemove) && bRemove)
669 {
670 *dev = 0;
671 }
672 }
673 if (wcslen(dev) == 0 &&
674 DmiStrings[BOARD_VERSION] != NULL)
675 {
677
678 if (IsGenericSystemName(NULL, dev, &bRemove) && bRemove)
679 {
680 *dev = 0;
681 }
682 }
683 }
684 else if (DmiStrings[BOARD_NAME] != NULL)
685 {
687
688 if (IsGenericSystemName(NULL, dev, &bRemove) && bRemove)
689 {
690 *dev = 0;
691 }
692 }
693
694 if (wcslen(ven) == 0 && wcslen(dev) == 0)
695 {
696 // board strings are empty, use BIOS vendor string
697 GetSMBiosStringW(DmiStrings[BIOS_VENDOR], ven, _countof(ven), TRUE);
698 }
699 }
700 else
701 {
702 if (wcslen(ven) < 2)
703 {
704 GetSMBiosStringW(DmiStrings[BOARD_VENDOR], ven, _countof(ven), TRUE);
705
706 if (IsGenericSystemName(ven, NULL, &bRemove) && bRemove)
707 {
708 *ven = 0;
709 }
710 }
711 }
712
713 // workaround for LORD ELECTRONICS
714 if (((j = wcsstr(ven, L" ")) != NULL) && (j - ven > 2))
715 {
716 i = j - ven;
717 if (!wcsncmp(ven + wcslen(ven) - i, ven, i))
718 {
719 ven[wcslen(ven) - i] = L'\0';
720 }
721 }
722
723 // make vendor strings shorter
724 for (i = 0; i < _countof(LongNames); i++)
725 {
726 if (wcsstr(dev, LongNames[i].pwLongName) == dev)
727 {
728 // swap ven and dev
729 StringCchCopyW(pBuf, cchBuf, ven);
730 StringCchCopyW(ven, _countof(ven), dev);
732 }
733 wcsrep(ven, LongNames[i].pwLongName, LongNames[i].pwShortName, TRUE);
734 }
735
736 // remove redundant words
737 for (i = 0; i < _countof(RedundantWords); i++)
738 {
739 wcsrep(ven, RedundantWords[i].pwStr, L"", RedundantWords[i].bReplaceFirstWord);
740 }
741 for (i = 0; i < _countof(RedundantWords); i++)
742 {
743 StringCchCopyW(pBuf, cchBuf, RedundantWords[i].pwStr);
744 StringCchCatW(pBuf, cchBuf, L".");
745 wcsrep(ven, pBuf, L"", RedundantWords[i].bReplaceFirstWord);
746 }
747
748 // workaround for LENOVO notebooks
749 if (!wcsicmp(ven, L"LENOVO"))
750 {
751 StringCchCopyW(ven, _countof(ven), L"Lenovo");
752
753 if (DmiStrings[SYS_VERSION] != NULL)
754 {
755 if (!strncmp(DmiStrings[SYS_VERSION], "ThinkPad ", 11))
756 {
757 DmiStrings[SYS_VERSION][8] = L'\0';
758 }
759 if (wcslen(dev) > 0 &&
760 (!strcmp(DmiStrings[SYS_VERSION], "IdeaCentre") ||
761 !strcmp(DmiStrings[SYS_VERSION], "ThinkPad")))
762 {
763 DmiStrings[SYS_FAMILY] = DmiStrings[SYS_VERSION];
764 DmiStrings[SYS_VERSION] = NULL;
765 }
766 else
767 {
768 StringCchCopyA(tmpstr, _countof(tmpstr), DmiStrings[SYS_VERSION]);
769 _strupr(tmpstr);
770 }
771 }
772
773 if (DmiStrings[SYS_VERSION] != NULL &&
774 strcmp(tmpstr, " ") &&
775 strcmp(tmpstr, "LENOVO") &&
776 strstr(tmpstr, "LENOVO ") == NULL &&
777 strstr(tmpstr, "LENOVO PRODUCT") == NULL &&
778 strstr(tmpstr, "LENOVOPRODUCT") == NULL &&
779 strstr(tmpstr, "INVALID") == NULL &&
780 strncmp(tmpstr, " ", 3) &&
781 (strlen(tmpstr) >= 3 || !IsDigitStrA(tmpstr)) &&
782 strstr(DmiStrings[SYS_VERSION], "Rev ") == NULL &&
783 strstr(DmiStrings[SYS_VERSION], "1.") == NULL &&
784 wcsistr(dev, L"System ") == NULL && // includes System x and ThinkSystem
785 wcsistr(dev, L"IdeaPad ") == NULL &&
786 wcsistr(dev, L"ThinkServer ") == NULL)
787 {
789 }
790
791 if (wcsstr(dev, L"Lenovo-") == dev)
792 {
793 // replace "-" with space
794 dev[6] = L' ';
795 }
796
797 if (!wcscmp(dev, L"Lenovo"))
798 {
800 }
801 }
802 if (!wcscmp(ven, L"IBM") &&
803 DmiStrings[SYS_VERSION] != NULL &&
804 (strstr(DmiStrings[SYS_VERSION], "ThinkPad ") != NULL ||
805 strstr(DmiStrings[SYS_VERSION], "ThinkCentre ") != NULL))
806 {
808 }
809
810 // workaround for DEXP
811 if (!wcscmp(ven, L"DEXP"))
812 {
813 if (DmiStrings[SYS_PRODUCT] != NULL &&
814 DmiStrings[SYS_VERSION] != NULL &&
815 (!stricmp(DmiStrings[SYS_PRODUCT], "Tablet PC") ||
816 !stricmp(DmiStrings[SYS_PRODUCT], "Notebook") ||
817 !stricmp(DmiStrings[SYS_PRODUCT], "Decktop")))
818 {
820 }
821 }
822
823 // workaround for Razer Blade
824 if (!wcscmp(ven, L"Razer") && !wcscmp(dev, L"Blade"))
825 {
826 if (DmiStrings[SYS_VERSION] != NULL)
827 {
828 StringCchCopyW(ven, _countof(ven), L"Razer Blade");
830 }
831 }
832
833 // workaround for MSI motherboards
834 if (!wcscmp(ven, L"MSI") &&
835 wcsstr(dev, L"MS-") != NULL &&
836 DmiStrings[BOARD_NAME] != NULL &&
837 strstr(DmiStrings[BOARD_NAME], "(MS-") != NULL)
838 {
840 }
841 if (wcslen(ven) == 0 &&
842 wcsstr(dev, L"MS-") == dev)
843 {
844 StringCchCopyW(ven, _countof(ven), L"MSI");
845 }
846
847 // trim redundant characters
848 TrimPunctuation(ven);
850
851 if (wcsistr(dev, ven) == dev ||
852 (!wcscmp(ven, L"ASUS") && wcsstr(dev, L"ASUS") != NULL) ||
853 (!wcscmp(ven, L"HP") && wcsstr(dev, L" by HP") != NULL) ||
854 (!wcscmp(ven, L"INTEL") && wcsstr(dev, L" INTEL") != NULL))
855 {
856 // device string contains vendor string, use second only
857 StringCchCopyW(pBuf, cchBuf, dev);
858 }
859 else
860 {
861 if (wcslen(ven) > 0 && wcslen(dev) > 0 && (j = wcschr(dev, L' ')))
862 {
863 // check if vendor string ends with first word of device string
864 i = j - dev;
865 if (wcslen(ven) > i && !_wcsnicmp(ven + wcslen(ven) - i, dev, i))
866 {
867 ven[wcslen(ven) - i] = L'\0';
868 TrimPunctuation(ven);
869 }
870 }
871 StringCchCopyW(pBuf, cchBuf, ven);
872 AppendSystemFamily(pBuf, cchBuf, DmiStrings, dev);
873 if (wcslen(pBuf) > 0 && wcslen(dev) > 0)
874 {
875 StringCchCatW(pBuf, cchBuf, L" ");
876 }
877 StringCchCatW(pBuf, cchBuf, dev);
878 }
879
880 FreeSMBiosData(SMBiosBuf);
881
882 return (wcslen(pBuf) > 0);
883}
PWSTR LongNames[LONG_NAMES_COUNT]
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
char * strstr(char *String1, char *String2)
Definition: utclib.c:653
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
Definition: utclib.c:534
static BOOL TrimNonPrintableProd(PCHAR DmiString)
Definition: smbios.c:471
static VOID wcsrep(_Inout_ PWSTR pwStr, _In_ PCWSTR pwFind, _In_ PCWSTR pwReplace, _In_ BOOL bReplaceFirstWord)
Definition: smbios.c:179
static wchar_t * wcsistr(const wchar_t *s, const wchar_t *b)
Definition: smbios.c:105
static void AppendSystemFamily(PWSTR pBuf, SIZE_T cchBuf, PCHAR *DmiStrings, PWSTR dev)
Definition: smbios.c:407
static BOOL TrimNonPrintable(PCHAR DmiString)
Definition: smbios.c:445
static VOID TrimPunctuation(_Inout_ PWSTR pStr)
Definition: smbios.c:68
static BOOL IsDigitStrA(PCHAR DmiString)
Definition: smbios.c:42
static BOOL IsGenericSystemName(PCWSTR ven, PCWSTR dev, BOOL *bRemove)
Definition: smbios.c:257
#define wcschr
Definition: compat.h:17
#define stricmp(_String1, _String2)
Definition: compat.h:24
#define wcsicmp
Definition: compat.h:15
@ BOARD_VENDOR
Definition: dmilib.h:22
@ SYS_VERSION
Definition: dmilib.h:18
@ SYS_PRODUCT
Definition: dmilib.h:17
@ ID_STRINGS_MAX
Definition: dmilib.h:28
@ SYS_VENDOR
Definition: dmilib.h:16
@ BIOS_VENDOR
Definition: dmilib.h:13
@ BOARD_NAME
Definition: dmilib.h:23
@ BOARD_VERSION
Definition: dmilib.h:24
@ SYS_FAMILY
Definition: dmilib.h:21
unsigned int BOOL
Definition: ntddk_ex.h:94
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
Definition: glfuncs.h:250
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
_CONST_RETURN wchar_t *__cdecl wcsstr(_In_z_ const wchar_t *_Str, _In_z_ const wchar_t *_SubStr)
unsigned int UINT
Definition: ndis.h:50
#define L(x)
Definition: ntvdm.h:50
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
_CRTIMP char *__cdecl _strupr(_Inout_z_ char *_String)
_Check_return_ _CRTIMP int __cdecl _wcsnicmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
#define _countof(array)
Definition: sndvol32.h:68
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:325
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:149
STRSAFEAPI StringCchCopyA(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc)
Definition: strsafe.h:145
uint16_t * PWCHAR
Definition: typedefs.h:56
char * PCHAR
Definition: typedefs.h:51
SIZE_T GetSMBiosStringW(_In_ PCSTR DmiString, _Out_ PWSTR pBuf, _In_ DWORD cchBuf, _In_ BOOL bTrim)
Definition: udmihelp.c:145
PVOID LoadSMBiosData(_Inout_updates_(ID_STRINGS_MAX) PCHAR *Strings)
Definition: udmihelp.c:30
VOID FreeSMBiosData(_In_ PVOID Buffer)
Definition: udmihelp.c:177
char CHAR
Definition: xmlstorage.h:175

Referenced by GetSystemInformation().

◆ HardProfDlgProc()

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

Definition at line 740 of file hardprof.c.

744{
745 PPROFILEDATA pProfileData;
746
749 UNREFERENCED_PARAMETER(hwndDlg);
750
751 pProfileData = (PPROFILEDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
752
753 switch (uMsg)
754 {
755 case WM_INITDIALOG:
756 return OnInitHardProfDialog(hwndDlg);
757
758 case WM_DESTROY:
759 if (pProfileData != NULL)
760 {
761 if (pProfileData->pProfiles != NULL)
762 HeapFree(GetProcessHeap(), 0, pProfileData->pProfiles);
763 HeapFree(GetProcessHeap(), 0, pProfileData);
764 }
765 break;
766
767 case WM_COMMAND:
768 switch (LOWORD(wParam))
769 {
770 case IDC_HRDPROFPROP:
771 HardwareProfileProperties(hwndDlg, pProfileData);
772 break;
773
774 case IDC_HRDPROFCOPY:
775 CopyHardwareProfile(hwndDlg, pProfileData);
776 break;
777
779 RenameHardwareProfile(hwndDlg, pProfileData);
780 break;
781
782 case IDC_HRDPROFDEL:
783 DeleteHardwareProfile(hwndDlg, pProfileData);
784 break;
785
786 case IDC_HRDPROFUP:
787 MoveHardwareProfile(hwndDlg, pProfileData, TRUE);
788 break;
789
790 case IDC_HRDPROFDWN:
791 MoveHardwareProfile(hwndDlg, pProfileData, FALSE);
792 break;
793
794 case IDC_HRDPROFWAIT:
796 return TRUE;
797
800 return TRUE;
801
804 {
806 UpdateButtons(hwndDlg, pProfileData);
807 }
808 return TRUE;
809
810 case IDOK:
811 OnOk(hwndDlg);
812
813 case IDCANCEL:
814 EndDialog(hwndDlg, LOWORD(wParam));
815 return TRUE;
816 }
817 break;
818 }
819
820 return FALSE;
821}
#define IDC_HRDPROFDWN
Definition: resource.h:193
#define IDC_HRDPROFCOPY
Definition: resource.h:195
#define IDC_HRDPROFRENAME
Definition: resource.h:196
#define IDC_HRDPROFUP
Definition: resource.h:192
#define IDC_HRDPROFEDIT
Definition: resource.h:200
#define IDC_HRDPROFSELECT
Definition: resource.h:199
#define IDC_HRDPROFDEL
Definition: resource.h:197
#define IDC_HRDPROFLSTBOX
Definition: resource.h:191
#define IDC_HRDPROFWAIT
Definition: resource.h:198
#define IDC_HRDPROFPROP
Definition: resource.h:194
static VOID HardwareProfileProperties(HWND hwndDlg, PPROFILEDATA pProfileData)
Definition: hardprof.c:434
static VOID CopyHardwareProfile(HWND hwndDlg, PPROFILEDATA pProfileData)
Definition: hardprof.c:150
static BOOL OnInitHardProfDialog(HWND hwndDlg)
Definition: hardprof.c:683
struct _PROFILEDATA * PPROFILEDATA
static VOID OnOk(HWND hwndDlg)
Definition: hardprof.c:720
static VOID MoveHardwareProfile(HWND hwndDlg, PPROFILEDATA pProfileData, BOOL bMoveUp)
Definition: hardprof.c:363
static VOID DeleteHardwareProfile(HWND hwndDlg, PPROFILEDATA pProfileData)
Definition: hardprof.c:310
static VOID UpdateButtons(HWND hwndDlg, PPROFILEDATA pProfileData)
Definition: hardprof.c:43
static VOID RenameHardwareProfile(HWND hwndDlg, PPROFILEDATA pProfileData)
Definition: hardprof.c:271
#define DWORD
Definition: nt_native.h:44
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:317
PPROFILE pProfiles
Definition: hardprof.c:30
DWORD dwSelectedProfileIndex
Definition: hardprof.c:29
#define LBN_SELCHANGE
Definition: winuser.h:2075
#define LB_GETCURSEL
Definition: winuser.h:2039

Referenced by HardwarePageProc().

◆ HardwarePageProc()

INT_PTR CALLBACK HardwarePageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 68 of file hardware.c.

72{
74
75 switch (uMsg)
76 {
77 case WM_INITDIALOG:
78 break;
79
80 case WM_COMMAND:
81 switch (LOWORD(wParam))
82 {
84 if (!LaunchDeviceManager(hwndDlg))
85 {
86 /* FIXME */
87 }
88 return TRUE;
89
91 LaunchHardwareWizard(hwndDlg);
92 return TRUE;
93
97 hwndDlg,
99 return TRUE;
100 }
101 break;
102 }
103
104 return FALSE;
105}
HINSTANCE hApplet
Definition: access.c:17
static BOOL LaunchDeviceManager(HWND hWndParent)
Definition: hardware.c:16
static VOID LaunchHardwareWizard(HWND hWndParent)
Definition: hardware.c:45
#define IDD_HARDWAREPROFILES
Definition: resource.h:190
#define IDC_HARDWARE_PROFILE
Definition: resource.h:88
#define IDC_HARDWARE_DEVICE_MANAGER
Definition: resource.h:90
#define IDC_HARDWARE_WIZARD
Definition: resource.h:87
INT_PTR CALLBACK HardProfDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: hardprof.c:740
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define DialogBox
Definition: winuser.h:5761

Referenced by SystemApplet().

◆ LicenceDlgProc()

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

Definition at line 68 of file licence.c.

72{
73 PLIC_CONTEXT pLicInfo;
74
76
77 pLicInfo = (PLIC_CONTEXT)GetWindowLongPtr(hDlg, DWLP_USER);
78
79 switch (uMsg)
80 {
81 case WM_INITDIALOG:
83 if (pLicInfo == NULL)
84 {
85 EndDialog(hDlg, 0);
86 return FALSE;
87 }
88 SetWindowLongPtr(hDlg, DWLP_USER, (LONG_PTR)pLicInfo);
89 return OnInitDialog(hDlg, pLicInfo);
90
91 case WM_DESTROY:
92 if (pLicInfo)
93 {
94 if (pLicInfo->hIconSm)
95 DestroyIcon(pLicInfo->hIconSm);
96
97 if (pLicInfo->hIcon)
98 DestroyIcon(pLicInfo->hIcon);
99
100 HeapFree(GetProcessHeap(), 0, pLicInfo);
101 }
102 break;
103
104 case WM_COMMAND:
105 if ((LOWORD(wParam) == IDOK) || (LOWORD(wParam) == IDCANCEL))
106 {
107 EndDialog(hDlg,
108 LOWORD(wParam));
109 return TRUE;
110 }
111 break;
112 }
113
114 return FALSE;
115}
static BOOL OnInitDialog(HWND hDlg, PLIC_CONTEXT pLicInfo)
Definition: licence.c:20
struct _LIC_CONTEXT * PLIC_CONTEXT
HICON hIconSm
Definition: licence.c:15
HICON hIcon
Definition: licence.c:14
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2053

Referenced by GeneralPageProc().

◆ ResourceMessageBox()

INT __cdecl ResourceMessageBox ( _In_opt_ HINSTANCE  hInstance,
_In_opt_ HWND  hwnd,
_In_ UINT  uType,
_In_ UINT  uCaption,
_In_ UINT  uText,
  ... 
)

Definition at line 27 of file sysdm.c.

34{
36 WCHAR szCaption[MAX_STR_LENGTH];
37 WCHAR szText[MAX_STR_LENGTH];
38 WCHAR szCookedText[2*MAX_STR_LENGTH];
39
40 LoadStringW(hInstance, uCaption, szCaption, _countof(szCaption));
41 LoadStringW(hInstance, uText, szText, _countof(szText));
42
43 va_start(args, uText);
44 StringCchVPrintfW(szCookedText, _countof(szCookedText),
45 szText, args);
46 va_end(args);
47
48 return MessageBoxW(hwnd,
49 szCookedText,
50 szCaption,
51 uType);
52}
char * va_list
Definition: acmsvcex.h:78
#define va_end(ap)
Definition: acmsvcex.h:90
#define va_start(ap, A)
Definition: acmsvcex.h:91
HINSTANCE hInstance
Definition: charmap.c:19
#define MAX_STR_LENGTH
Definition: precomp.h:58
#define args
Definition: format.c:66
STRSAFEAPI StringCchVPrintfW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszFormat, va_list argList)
Definition: strsafe.h:490
Definition: match.c:390
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
int WINAPI LoadStringW(_In_opt_ HINSTANCE hInstance, _In_ UINT uID, _Out_writes_to_(cchBufferMax, return+1) LPWSTR lpBuffer, _In_ int cchBufferMax)
int WINAPI MessageBoxW(_In_opt_ HWND hWnd, _In_opt_ LPCWSTR lpText, _In_opt_ LPCWSTR lpCaption, _In_ UINT uType)

◆ ShowLastWin32Error()

void ShowLastWin32Error ( HWND  hWndOwner)

Definition at line 11 of file winutils.c.

12{
13 DWORD dwError;
14 LPWSTR lpMsgBuf = NULL;
15
16 dwError = GetLastError();
17 if (dwError == ERROR_SUCCESS)
18 return;
19
23 NULL,
24 dwError,
26 (LPWSTR)&lpMsgBuf,
27 0, NULL))
28 {
29 return;
30 }
31
33 LocalFree(lpMsgBuf);
34}
static HWND hwndParent
Definition: cryptui.c:300
#define ERROR_SUCCESS
Definition: deptool.c:10
DWORD WINAPI FormatMessageW(DWORD dwFlags, LPCVOID lpSource, DWORD dwMessageId, DWORD dwLanguageId, LPWSTR lpBuffer, DWORD nSize, __ms_va_list *args)
Definition: format_msg.c:583
unsigned long DWORD
Definition: ntddk_ex.h:95
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
#define LANG_USER_DEFAULT
Definition: tnerror.cpp:50
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define FORMAT_MESSAGE_IGNORE_INSERTS
Definition: winbase.h:420
#define FORMAT_MESSAGE_FROM_SYSTEM
Definition: winbase.h:423
#define FORMAT_MESSAGE_ALLOCATE_BUFFER
Definition: winbase.h:419
#define MB_ICONERROR
Definition: winuser.h:787

Referenced by DeleteClipboardContent(), LoadClipboardDataFromFile(), LoadRecoveryOptions(), OnInitDialog(), ReadClipboardFile(), ReadPageFileSettings(), SaveClipboardToFile(), WriteClipboardFile(), WritePageFileSettings(), WriteStartupRecoveryOptions(), and wWinMain().

◆ StartRecDlgProc()

INT_PTR CALLBACK StartRecDlgProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 695 of file startrec.c.

699{
700 PSTARTINFO pStartInfo;
701 PBOOTRECORD pRecord;
702 int iTimeout;
703 LRESULT lResult;
704 WCHAR szTimeout[10];
705
707
708 pStartInfo = (PSTARTINFO)GetWindowLongPtr(hwndDlg, DWLP_USER);
709
710 switch(uMsg)
711 {
712 case WM_INITDIALOG:
713 pStartInfo = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(STARTINFO));
714 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pStartInfo);
715
716 LoadRecoveryOptions(hwndDlg, pStartInfo);
717 SetRecoveryTimeout(hwndDlg, 0);
718 return LoadOSList(hwndDlg, pStartInfo);
719
720 case WM_DESTROY:
721 DeleteBootRecords(hwndDlg);
722 HeapFree(GetProcessHeap(), 0, pStartInfo);
723 break;
724
725 case WM_COMMAND:
726 switch(LOWORD(wParam))
727 {
728 case IDC_STRRECEDIT:
729 ShellExecuteW(0, L"open", L"notepad", pStartInfo->szFreeldrIni, NULL, SW_SHOWNORMAL);
730 // FIXME: Use CreateProcess and wait untill finished
731 // DeleteBootRecords(hwndDlg);
732 // LoadOSList(hwndDlg);
733 break;
734
735 case IDOK:
736 /* Save timeout */
738 iTimeout = SendDlgItemMessage(hwndDlg, IDC_STRRECLISTUPDWN, UDM_GETPOS, (WPARAM)0, (LPARAM)0);
739 else
740 iTimeout = 0;
741 swprintf(szTimeout, L"%i", iTimeout);
742
744 if (lResult == CB_ERR)
745 {
746 /* ? */
747 DeleteBootRecords(hwndDlg);
748 return TRUE;
749 }
750
751 pRecord = (PBOOTRECORD) SendDlgItemMessage(hwndDlg, IDC_STRECOSCOMBO, CB_GETITEMDATA, (WPARAM)lResult, (LPARAM)0);
752
753 if ((INT_PTR)pRecord != CB_ERR)
754 {
755 if (pStartInfo->iFreeLdrIni == 1) // FreeLdrIni style
756 {
757 /* Set default timeout */
758 WritePrivateProfileStringW(L"FREELOADER",
759 L"TimeOut",
760 szTimeout,
761 pStartInfo->szFreeldrIni);
762 /* Set default OS */
763 WritePrivateProfileStringW(L"FREELOADER",
764 L"DefaultOS",
765 pRecord->szSectionName,
766 pStartInfo->szFreeldrIni);
767
768 }
769 else if (pStartInfo->iFreeLdrIni == 2) // BootIni style
770 {
771 /* Set default timeout */
772 WritePrivateProfileStringW(L"boot loader",
773 L"timeout",
774 szTimeout,
775 pStartInfo->szFreeldrIni);
776 /* Set default OS */
777 WritePrivateProfileStringW(L"boot loader",
778 L"default",
779 pRecord->szBootPath,
780 pStartInfo->szFreeldrIni);
781
782 }
783 }
784
786 {
787 WriteStartupRecoveryOptions(hwndDlg, pStartInfo);
788 }
789
790 EndDialog(hwndDlg,
791 LOWORD(wParam));
792 return TRUE;
793
794 case IDCANCEL:
795 EndDialog(hwndDlg,
796 LOWORD(wParam));
797 return TRUE;
798
799 case IDC_STRECLIST:
801 SetTimeout(hwndDlg, 30);
802 else
803 SetTimeout(hwndDlg, 0);
804 break;
805
806 case IDC_STRRECREC:
808 SetRecoveryTimeout(hwndDlg, 30);
809 else
810 SetRecoveryTimeout(hwndDlg, 0);
811 break;
812
815 {
816 LRESULT lResult;
817
819 if (lResult != CB_ERR && lResult != (LRESULT)pStartInfo->dwCrashDumpEnabled)
820 {
821 if (pStartInfo->dwCrashDumpEnabled == 1 || pStartInfo->dwCrashDumpEnabled == 2)
822 {
823 SendDlgItemMessageW(hwndDlg, IDC_STRRECDUMPFILE, WM_GETTEXT, (WPARAM)sizeof(pStartInfo->szDumpFile) / sizeof(WCHAR), (LPARAM)pStartInfo->szDumpFile);
824 }
825 else if (pStartInfo->dwCrashDumpEnabled == 3)
826 {
827 SendDlgItemMessageW(hwndDlg, IDC_STRRECDUMPFILE, WM_GETTEXT, (WPARAM)sizeof(pStartInfo->szMinidumpDir) / sizeof(WCHAR), (LPARAM)pStartInfo->szMinidumpDir);
828 }
829
830 pStartInfo->dwCrashDumpEnabled = (DWORD)lResult;
831 SetCrashDlgItems(hwndDlg, pStartInfo);
832 }
833 }
834 break;
835 }
836 break;
837 }
838
839 return FALSE;
840}
#define IDC_STRRECREC
Definition: resource.h:178
#define IDC_STRRECDEBUGCOMBO
Definition: resource.h:185
#define IDC_STRRECEDIT
Definition: resource.h:181
#define IDC_STRRECLISTUPDWN
Definition: resource.h:177
#define IDC_STRECLIST
Definition: resource.h:175
#define IDC_STRECOSCOMBO
Definition: resource.h:174
#define IDC_STRRECDUMPFILE
Definition: resource.h:186
BOOL WINAPI WritePrivateProfileStringW(LPCWSTR section, LPCWSTR entry, LPCWSTR string, LPCWSTR filename)
Definition: profile.c:1453
#define swprintf
Definition: precomp.h:40
#define UDM_GETPOS
Definition: commctrl.h:2144
HINSTANCE WINAPI ShellExecuteW(HWND hwnd, LPCWSTR lpVerb, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd)
Definition: shlexec.cpp:2402
struct _BOOTRECORD * PBOOTRECORD
static VOID SetRecoveryTimeout(HWND hwndDlg, INT Timeout)
Definition: startrec.c:52
static LRESULT LoadOSList(HWND hwndDlg, PSTARTINFO pStartInfo)
Definition: startrec.c:461
static VOID SetTimeout(HWND hwndDlg, INT Timeout)
Definition: startrec.c:35
static VOID SetCrashDlgItems(HWND hwnd, PSTARTINFO pStartInfo)
Definition: startrec.c:524
struct _STARTINFO * PSTARTINFO
static VOID WriteStartupRecoveryOptions(HWND hwndDlg, PSTARTINFO pStartInfo)
Definition: startrec.c:550
BOOL SaveRecoveryOptions
Definition: startrec.c:32
static VOID LoadRecoveryOptions(HWND hwndDlg, PSTARTINFO pStartInfo)
Definition: startrec.c:602
static VOID DeleteBootRecords(HWND hwndDlg)
Definition: startrec.c:438
WCHAR szBootPath[MAX_PATH]
Definition: startrec.c:19
WCHAR szSectionName[128]
Definition: startrec.c:18
INT iFreeLdrIni
Definition: startrec.c:29
DWORD dwCrashDumpEnabled
Definition: startrec.c:28
WCHAR szMinidumpDir[MAX_PATH]
Definition: startrec.c:27
WCHAR szDumpFile[MAX_PATH]
Definition: startrec.c:26
WCHAR szFreeldrIni[MAX_PATH+15]
Definition: startrec.c:25
LONG_PTR LRESULT
Definition: windef.h:209
UINT_PTR WPARAM
Definition: windef.h:207
#define SW_SHOWNORMAL
Definition: winuser.h:770
#define WM_GETTEXT
Definition: winuser.h:1618
#define BST_CHECKED
Definition: winuser.h:197

Referenced by AdvancedPageProc().

◆ UserProfileDlgProc()

INT_PTR CALLBACK UserProfileDlgProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 810 of file userprofile.c.

814{
815 switch (uMsg)
816 {
817 case WM_INITDIALOG:
819 return TRUE;
820
821 case WM_COMMAND:
822 switch (LOWORD(wParam))
823 {
824 case IDOK:
825 case IDCANCEL:
826 EndDialog(hwndDlg,
827 LOWORD(wParam));
828 return TRUE;
829
831 ChangeUserProfileType(hwndDlg);
832 break;
833
835 DeleteUserProfile(hwndDlg);
836 break;
837
839 CopyUserProfile(hwndDlg);
840 break;
841 }
842 break;
843
844 case WM_NOTIFY:
845 OnNotify(hwndDlg, (NMHDR *)lParam);
846 break;
847 }
848
849 return FALSE;
850}
#define IDC_USERPROFILE_DELETE
Definition: resource.h:109
#define IDC_USERPROFILE_CHANGE
Definition: resource.h:108
#define IDC_USERPROFILE_COPY
Definition: resource.h:110
static VOID OnInitUserProfileDialog(HWND hwndDlg)
Definition: userprofile.c:757
static BOOL ChangeUserProfileType(_In_ HWND hwndDlg)
Definition: userprofile.c:108
static BOOL CopyUserProfile(_In_ HWND hwndDlg)
Definition: userprofile.c:231
static VOID OnNotify(_In_ HWND hwndDlg, _In_ NMHDR *nmhdr)
Definition: userprofile.c:776
static BOOL DeleteUserProfile(_In_ HWND hwndDlg)
Definition: userprofile.c:150

Referenced by AdvancedPageProc().

◆ VirtMemDlgProc()

INT_PTR CALLBACK VirtMemDlgProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 821 of file virtmem.c.

825{
826 PVIRTMEM pVirtMem;
827
829
830 pVirtMem = (PVIRTMEM)GetWindowLongPtr(hwndDlg, DWLP_USER);
831
832 switch (uMsg)
833 {
834 case WM_INITDIALOG:
835 {
836 pVirtMem = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(VIRTMEM));
837 if (pVirtMem == NULL)
838 {
839 EndDialog(hwndDlg, 0);
840 return FALSE;
841 }
842
843 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pVirtMem);
844
845 OnInitVirtMemDialog(hwndDlg, pVirtMem);
846 break;
847 }
848
849 case WM_DESTROY:
850 OnDestroy(pVirtMem);
851 break;
852
853 case WM_COMMAND:
854 switch (LOWORD(wParam))
855 {
856 case IDCANCEL:
857 EndDialog(hwndDlg, 0);
858 return TRUE;
859
860 case IDOK:
861 OnVirtMemDialogOk(pVirtMem);
862 EndDialog(hwndDlg, pVirtMem->bModified);
863 return TRUE;
864
865 case IDC_NOPAGEFILE:
866 OnNoPagingFile(pVirtMem);
867 return TRUE;
868
869 case IDC_SYSMANSIZE:
870 OnSysManSize(pVirtMem);
871 return TRUE;
872
873 case IDC_CUSTOM:
874 OnCustom(pVirtMem);
875 return TRUE;
876
877 case IDC_SET:
878 OnSet(pVirtMem);
879 return TRUE;
880
881 case IDC_PAGEFILELIST:
882 switch (HIWORD(wParam))
883 {
884 case LBN_SELCHANGE:
885 OnSelChange(pVirtMem);
886 return TRUE;
887 }
888 break;
889 }
890 break;
891 }
892
893 return FALSE;
894}
static BOOL OnSelChange(PVIRTMEM pVirtMem)
Definition: virtmem.c:615
static VOID OnSysManSize(PVIRTMEM pVirtMem)
Definition: virtmem.c:372
static VOID OnInitVirtMemDialog(HWND hwnd, PVIRTMEM pVirtMem)
Definition: virtmem.c:769
static VOID OnCustom(PVIRTMEM pVirtMem)
Definition: virtmem.c:381
struct _VIRTMEM * PVIRTMEM
static VOID OnDestroy(PVIRTMEM pVirtMem)
Definition: virtmem.c:803
static VOID OnVirtMemDialogOk(PVIRTMEM pVirtMem)
Definition: virtmem.c:753
static VOID OnNoPagingFile(PVIRTMEM pVirtMem)
Definition: virtmem.c:363
static VOID OnSet(PVIRTMEM pVirtMem)
Definition: virtmem.c:492
#define IDC_NOPAGEFILE
Definition: resource.h:165
#define IDC_SET
Definition: resource.h:166
#define IDC_SYSMANSIZE
Definition: resource.h:164
#define IDC_PAGEFILELIST
Definition: resource.h:157
#define IDC_CUSTOM
Definition: resource.h:161
BOOL bModified
Definition: virtmem.c:82

Referenced by AdvancedPageProc().

Variable Documentation

◆ hApplet

HINSTANCE hApplet
extern

Definition at line 17 of file access.c.