From: Eric Kohl Date: Mon, 17 Sep 2007 22:29:35 +0000 (+0000) Subject: Merge all settings in a single struct. This is required to implement the administrati... X-Git-Tag: backups/win32k-stable@33466~318 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=c04f5503a644b1a95ff1c35aeb795b8b21761f04 Merge all settings in a single struct. This is required to implement the administrative options. svn path=/trunk/; revision=29088 --- diff --git a/reactos/dll/cpl/access/access.c b/reactos/dll/cpl/access/access.c index b2d4132fc8e..d1c885c285e 100644 --- a/reactos/dll/cpl/access/access.c +++ b/reactos/dll/cpl/access/access.c @@ -26,8 +26,9 @@ APPLET Applets[NUM_APPLETS] = {IDI_CPLACCESS, IDS_CPLSYSTEMNAME, IDS_CPLSYSTEMDESCRIPTION, SystemApplet} }; + static VOID -InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc) +InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc, PGLOBAL_DATA pGlobalData) { ZeroMemory(psp, sizeof(PROPSHEETPAGE)); psp->dwSize = sizeof(PROPSHEETPAGE); @@ -35,6 +36,7 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc) psp->hInstance = hApplet; psp->pszTemplate = MAKEINTRESOURCE(idDlg); psp->pfnDlgProc = DlgProc; + psp->lParam = (LPARAM)pGlobalData; } @@ -43,12 +45,18 @@ InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc) LONG CALLBACK SystemApplet(VOID) { + PGLOBAL_DATA pGlobalData; PROPSHEETPAGE psp[5]; PROPSHEETHEADER psh; TCHAR Caption[1024]; + INT ret; LoadString(hApplet, IDS_CPLSYSTEMNAME, Caption, sizeof(Caption) / sizeof(TCHAR)); + pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + if (pGlobalData == NULL) + return 0; + ZeroMemory(&psh, sizeof(PROPSHEETHEADER)); psh.dwSize = sizeof(PROPSHEETHEADER); psh.dwFlags = PSH_PROPSHEETPAGE; @@ -60,13 +68,17 @@ SystemApplet(VOID) psh.nStartPage = 0; psh.ppsp = psp; - InitPropSheetPage(&psp[0], IDD_PROPPAGEKEYBOARD, (DLGPROC)KeyboardPageProc); - InitPropSheetPage(&psp[1], IDD_PROPPAGESOUND, (DLGPROC)SoundPageProc); - InitPropSheetPage(&psp[2], IDD_PROPPAGEDISPLAY, (DLGPROC)DisplayPageProc); - InitPropSheetPage(&psp[3], IDD_PROPPAGEMOUSE, (DLGPROC)MousePageProc); - InitPropSheetPage(&psp[4], IDD_PROPPAGEGENERAL, (DLGPROC)GeneralPageProc); + InitPropSheetPage(&psp[0], IDD_PROPPAGEKEYBOARD, (DLGPROC)KeyboardPageProc, pGlobalData); + InitPropSheetPage(&psp[1], IDD_PROPPAGESOUND, (DLGPROC)SoundPageProc, pGlobalData); + InitPropSheetPage(&psp[2], IDD_PROPPAGEDISPLAY, (DLGPROC)DisplayPageProc, pGlobalData); + InitPropSheetPage(&psp[3], IDD_PROPPAGEMOUSE, (DLGPROC)MousePageProc, pGlobalData); + InitPropSheetPage(&psp[4], IDD_PROPPAGEGENERAL, (DLGPROC)GeneralPageProc, pGlobalData); + + ret = PropertySheet(&psh); + + HeapFree(GetProcessHeap(), 0, pGlobalData); - return (LONG)(PropertySheet(&psh) != -1); + return (LONG)(ret != -1); } /* Control Panel Callback */ diff --git a/reactos/dll/cpl/access/access.h b/reactos/dll/cpl/access/access.h index fe4ec719162..954b0940f68 100644 --- a/reactos/dll/cpl/access/access.h +++ b/reactos/dll/cpl/access/access.h @@ -11,6 +11,44 @@ typedef struct _APPLET APPLET_INITPROC AppletProc; } APPLET, *PAPPLET; + +typedef struct _GLOBAL_DATA +{ + /* keyboard page */ + STICKYKEYS stickyKeys; + STICKYKEYS oldStickyKeys; + FILTERKEYS filterKeys; + FILTERKEYS oldFilterKeys; + TOGGLEKEYS toggleKeys; + TOGGLEKEYS oldToggleKeys; + BOOL bKeyboardPref; + + /* sound page */ + SOUNDSENTRY ssSoundSentry; + BOOL bShowSounds; + + /* display page */ + HIGHCONTRAST highContrast; + UINT uCaretBlinkTime; + UINT uCaretWidth; + BOOL fShowCaret; + RECT rcCaret; + RECT rcOldCaret; + + /* mouse page */ + MOUSEKEYS mouseKeys; + + /* general page */ + ACCESSTIMEOUT accessTimeout; + SERIALKEYS serialKeys; + TCHAR szActivePort[MAX_PATH]; + TCHAR szPort[MAX_PATH]; + BOOL bWarningSounds; + BOOL bSoundOnActivation; + +} GLOBAL_DATA, *PGLOBAL_DATA; + + extern HINSTANCE hApplet; void ShowLastWin32Error(HWND hWndOwner); diff --git a/reactos/dll/cpl/access/display.c b/reactos/dll/cpl/access/display.c index 841c88c6b5e..ed79e9c45b6 100644 --- a/reactos/dll/cpl/access/display.c +++ b/reactos/dll/cpl/access/display.c @@ -16,15 +16,6 @@ #include "resource.h" #include "access.h" -typedef struct _GLOBAL_DATA -{ - HIGHCONTRAST highContrast; - UINT uCaretBlinkTime; - UINT uCaretWidth; - BOOL fShowCaret; - RECT rcCaret; - RECT rcOldCaret; -} GLOBAL_DATA, *PGLOBAL_DATA; #define ID_BLINK_TIMER 346 @@ -154,7 +145,7 @@ DisplayPageProc(HWND hwndDlg, switch (uMsg) { case WM_INITDIALOG: - pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam; if (pGlobalData == NULL) return FALSE; @@ -290,7 +281,6 @@ DisplayPageProc(HWND hwndDlg, case WM_DESTROY: KillTimer(hwndDlg, ID_BLINK_TIMER); - HeapFree(GetProcessHeap(), 0, pGlobalData); break; } diff --git a/reactos/dll/cpl/access/general.c b/reactos/dll/cpl/access/general.c index cb6be88c2a1..759ce9636ed 100644 --- a/reactos/dll/cpl/access/general.c +++ b/reactos/dll/cpl/access/general.c @@ -18,17 +18,6 @@ #include "access.h" -typedef struct _GLOBAL_DATA -{ - ACCESSTIMEOUT accessTimeout; - SERIALKEYS serialKeys; - TCHAR szActivePort[MAX_PATH]; - TCHAR szPort[MAX_PATH]; - BOOL bWarningSounds; - BOOL bSoundOnActivation; -} GLOBAL_DATA, *PGLOBAL_DATA; - - #define BAUDTICKS 6 static INT nBaudArray[BAUDTICKS] = {300, 1200, 2400, 4800, 9600, 19200}; @@ -267,7 +256,7 @@ GeneralPageProc(HWND hwndDlg, switch (uMsg) { case WM_INITDIALOG: - pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam; if (pGlobalData == NULL) return FALSE; @@ -367,10 +356,7 @@ GeneralPageProc(HWND hwndDlg, return TRUE; } break; - - case WM_DESTROY: - HeapFree(GetProcessHeap(), 0, pGlobalData); - break; } + } return FALSE; } diff --git a/reactos/dll/cpl/access/keyboard.c b/reactos/dll/cpl/access/keyboard.c index ca5beaf58d4..1cf42499a36 100644 --- a/reactos/dll/cpl/access/keyboard.c +++ b/reactos/dll/cpl/access/keyboard.c @@ -17,17 +17,6 @@ #include "resource.h" #include "access.h" -typedef struct _GLOBAL_DATA -{ - STICKYKEYS stickyKeys; - STICKYKEYS oldStickyKeys; - FILTERKEYS filterKeys; - FILTERKEYS oldFilterKeys; - TOGGLEKEYS toggleKeys; - TOGGLEKEYS oldToggleKeys; - BOOL bKeyboardPref; -} GLOBAL_DATA, *PGLOBAL_DATA; - #define BOUNCETICKS 5 static INT nBounceArray[BOUNCETICKS] = {500, 700, 1000, 1500, 2000}; @@ -666,7 +655,7 @@ KeyboardPageProc(HWND hwndDlg, switch (uMsg) { case WM_INITDIALOG: - pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam; if (pGlobalData == NULL) return FALSE; @@ -756,10 +745,6 @@ KeyboardPageProc(HWND hwndDlg, return TRUE; } break; - - case WM_DESTROY: - HeapFree(GetProcessHeap(), 0, pGlobalData); - break; } return FALSE; diff --git a/reactos/dll/cpl/access/mouse.c b/reactos/dll/cpl/access/mouse.c index 1d09991c759..5dc5e6b4f46 100644 --- a/reactos/dll/cpl/access/mouse.c +++ b/reactos/dll/cpl/access/mouse.c @@ -16,11 +16,6 @@ #include "resource.h" #include "access.h" -typedef struct _GLOBAL_DATA -{ - MOUSEKEYS mouseKeys; -} GLOBAL_DATA, *PGLOBAL_DATA; - #define SPEEDTICKS 9 #define ACCELTICKS 9 @@ -165,7 +160,7 @@ MousePageProc(HWND hwndDlg, switch (uMsg) { case WM_INITDIALOG: - pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam; if (pGlobalData == NULL) return FALSE; @@ -218,10 +213,6 @@ MousePageProc(HWND hwndDlg, return TRUE; } break; - - case WM_DESTROY: - HeapFree(GetProcessHeap(), 0, pGlobalData); - break; } return FALSE; diff --git a/reactos/dll/cpl/access/sound.c b/reactos/dll/cpl/access/sound.c index 276db9ea322..98d60922ccc 100644 --- a/reactos/dll/cpl/access/sound.c +++ b/reactos/dll/cpl/access/sound.c @@ -16,28 +16,21 @@ #include "access.h" -typedef struct _SOUNDDATA -{ - SOUNDSENTRY ssSoundSentry; - BOOL bShowSounds; -} SOUNDDATA, *PSOUNDDATA; - - static VOID -OnInitDialog(HWND hwndDlg, PSOUNDDATA pSoundData) +OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData) { TCHAR szBuffer[256]; UINT i; - pSoundData->ssSoundSentry.cbSize = sizeof(SOUNDSENTRY); + pGlobalData->ssSoundSentry.cbSize = sizeof(SOUNDSENTRY); SystemParametersInfo(SPI_GETSOUNDSENTRY, sizeof(SOUNDSENTRY), - &pSoundData->ssSoundSentry, + &pGlobalData->ssSoundSentry, 0); SystemParametersInfo(SPI_GETSHOWSOUNDS, 0, - &pSoundData->bShowSounds, + &pGlobalData->bShowSounds, 0); /* Add strings to the combo-box */ @@ -48,10 +41,10 @@ OnInitDialog(HWND hwndDlg, PSOUNDDATA pSoundData) } /* Select a combo-box item */ - SendDlgItemMessage(hwndDlg, IDC_SENTRY_COMBO, CB_SETCURSEL, pSoundData->ssSoundSentry.iWindowsEffect, 0); + SendDlgItemMessage(hwndDlg, IDC_SENTRY_COMBO, CB_SETCURSEL, pGlobalData->ssSoundSentry.iWindowsEffect, 0); /* Initialize SoundSentry settings */ - if (!(pSoundData->ssSoundSentry.dwFlags & SSF_AVAILABLE)) + if (!(pGlobalData->ssSoundSentry.dwFlags & SSF_AVAILABLE)) { EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_BOX), FALSE); EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_TEXT), FALSE); @@ -59,7 +52,7 @@ OnInitDialog(HWND hwndDlg, PSOUNDDATA pSoundData) } else { - if (pSoundData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON) + if (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON) { CheckDlgButton(hwndDlg, IDC_SENTRY_BOX, BST_CHECKED); } @@ -71,7 +64,7 @@ OnInitDialog(HWND hwndDlg, PSOUNDDATA pSoundData) } /* Initialize ShowSounds settings */ - if (pSoundData->bShowSounds) + if (pGlobalData->bShowSounds) CheckDlgButton(hwndDlg, IDC_SSHOW_BOX, BST_CHECKED); } @@ -83,40 +76,41 @@ SoundPageProc(HWND hwndDlg, WPARAM wParam, LPARAM lParam) { - PSOUNDDATA pSoundData; + PGLOBAL_DATA pGlobalData; - pSoundData = (PSOUNDDATA)GetWindowLongPtr(hwndDlg, DWLP_USER); + pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); switch (uMsg) { case WM_INITDIALOG: - pSoundData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(SOUNDDATA)); - SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pSoundData); + pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam; - OnInitDialog(hwndDlg, pSoundData); + SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); + + OnInitDialog(hwndDlg, pGlobalData); break; case WM_COMMAND: switch (LOWORD(wParam)) { case IDC_SENTRY_BOX: - pSoundData->ssSoundSentry.dwFlags ^= SSF_SOUNDSENTRYON; - EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_TEXT), (pSoundData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)?TRUE:FALSE); - EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_COMBO), (pSoundData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)?TRUE:FALSE); + pGlobalData->ssSoundSentry.dwFlags ^= SSF_SOUNDSENTRYON; + EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_TEXT), (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)?TRUE:FALSE); + EnableWindow(GetDlgItem(hwndDlg, IDC_SENTRY_COMBO), (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)?TRUE:FALSE); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; case IDC_SENTRY_COMBO: if (HIWORD(wParam) == CBN_SELENDOK) { - pSoundData->ssSoundSentry.iWindowsEffect = + pGlobalData->ssSoundSentry.iWindowsEffect = (DWORD)SendMessage((HWND)lParam, CB_GETCURSEL, 0, 0); PropSheet_Changed(GetParent(hwndDlg), hwndDlg); } break; case IDC_SSHOW_BOX: - pSoundData->bShowSounds = !pSoundData->bShowSounds; + pGlobalData->bShowSounds = !pGlobalData->bShowSounds; PropSheet_Changed(GetParent(hwndDlg), hwndDlg); break; @@ -131,10 +125,10 @@ SoundPageProc(HWND hwndDlg, case PSN_APPLY: SystemParametersInfo(SPI_SETSOUNDSENTRY, sizeof(SOUNDSENTRY), - &pSoundData->ssSoundSentry, + &pGlobalData->ssSoundSentry, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); SystemParametersInfo(SPI_SETSHOWSOUNDS, - pSoundData->bShowSounds, + pGlobalData->bShowSounds, 0, SPIF_UPDATEINIFILE | SPIF_SENDCHANGE); return TRUE; @@ -143,10 +137,6 @@ SoundPageProc(HWND hwndDlg, break; } break; - - case WM_DESTROY: - HeapFree(GetProcessHeap(), 0, pSoundData); - break; } return FALSE;