{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);
psp->hInstance = hApplet;
psp->pszTemplate = MAKEINTRESOURCE(idDlg);
psp->pfnDlgProc = DlgProc;
+ psp->lParam = (LPARAM)pGlobalData;
}
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;
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 */
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);
#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
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;
case WM_DESTROY:
KillTimer(hwndDlg, ID_BLINK_TIMER);
- HeapFree(GetProcessHeap(), 0, pGlobalData);
break;
}
#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};
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;
return TRUE;
}
break;
-
- case WM_DESTROY:
- HeapFree(GetProcessHeap(), 0, pGlobalData);
- break; }
+ }
return FALSE;
}
#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};
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;
return TRUE;
}
break;
-
- case WM_DESTROY:
- HeapFree(GetProcessHeap(), 0, pGlobalData);
- break;
}
return FALSE;
#include "resource.h"
#include "access.h"
-typedef struct _GLOBAL_DATA
-{
- MOUSEKEYS mouseKeys;
-} GLOBAL_DATA, *PGLOBAL_DATA;
-
#define SPEEDTICKS 9
#define ACCELTICKS 9
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;
return TRUE;
}
break;
-
- case WM_DESTROY:
- HeapFree(GetProcessHeap(), 0, pGlobalData);
- break;
}
return FALSE;
#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 */
}
/* 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);
}
else
{
- if (pSoundData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)
+ if (pGlobalData->ssSoundSentry.dwFlags & SSF_SOUNDSENTRYON)
{
CheckDlgButton(hwndDlg, IDC_SENTRY_BOX, BST_CHECKED);
}
}
/* Initialize ShowSounds settings */
- if (pSoundData->bShowSounds)
+ if (pGlobalData->bShowSounds)
CheckDlgButton(hwndDlg, IDC_SSHOW_BOX, BST_CHECKED);
}
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;
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;
break;
}
break;
-
- case WM_DESTROY:
- HeapFree(GetProcessHeap(), 0, pSoundData);
- break;
}
return FALSE;