ReactOS 0.4.15-dev-7934-g1dc8d80
keyboard.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Accessibility Control Panel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/cpl/access/keyboard.c
5 * PURPOSE: Keyboard-related accessibility settings
6 * COPYRIGHT: Copyright 2004 Johannes Anderwald (johannes.anderwald@reactos.org)
7 * Copyright 2007 Eric Kohl
8 */
9
10#include "access.h"
11
12#define BOUNCETICKS 5
13static UINT nBounceArray[BOUNCETICKS] = {500, 700, 1000, 1500, 2000};
14
15#define DELAYTICKS 5
16static UINT nDelayArray[DELAYTICKS] = {300, 700, 1000, 1500, 2000};
17
18#define REPEATTICKS 6
19static UINT nRepeatArray[REPEATTICKS] = {300, 500, 700, 1000, 1500, 2000};
20
21#define WAITTICKS 10
22static UINT nWaitArray[WAITTICKS] = {0, 300, 500, 700, 1000, 1500, 2000, 5000, 10000, 20000};
23
24
25static VOID
27{
28 pGlobalData->filterKeys.dwFlags |= FKF_FILTERKEYSON;
29 pGlobalData->filterKeys.dwFlags &= ~FKF_INDICATOR;
30
32 sizeof(FILTERKEYS),
33 &pGlobalData->filterKeys,
34 0);
35}
36
37
38static VOID
40{
41 if (pGlobalData->oldFilterKeys.dwFlags & FKF_FILTERKEYSON)
42 {
43 pGlobalData->filterKeys.dwFlags |= FKF_FILTERKEYSON;
44 }
45 else
46 {
47 pGlobalData->filterKeys.dwFlags &= ~FKF_FILTERKEYSON;
48 }
49
50 if (pGlobalData->oldFilterKeys.dwFlags & FKF_INDICATOR)
51 {
52 pGlobalData->filterKeys.dwFlags |= FKF_INDICATOR;
53 }
54 else
55 {
56 pGlobalData->filterKeys.dwFlags &= ~FKF_INDICATOR;
57 }
58
60 sizeof(FILTERKEYS),
61 &pGlobalData->filterKeys,
62 0);
63}
64
65
66/* Property page dialog callback */
69 UINT uMsg,
72{
73 PGLOBAL_DATA pGlobalData;
74
75 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
76
77 switch (uMsg)
78 {
79 case WM_INITDIALOG:
80 pGlobalData = (PGLOBAL_DATA)lParam;
81 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
82
83 memcpy(&pGlobalData->oldStickyKeys,
84 &pGlobalData->stickyKeys,
85 sizeof(STICKYKEYS));
86
87 CheckDlgButton(hwndDlg,
89 pGlobalData->stickyKeys.dwFlags & SKF_HOTKEYACTIVE ? BST_CHECKED : BST_UNCHECKED);
90
91 CheckDlgButton(hwndDlg,
93 pGlobalData->stickyKeys.dwFlags & SKF_TRISTATE ? BST_CHECKED : BST_UNCHECKED);
94
95 CheckDlgButton(hwndDlg,
97 pGlobalData->stickyKeys.dwFlags & SKF_TWOKEYSOFF ? BST_CHECKED : BST_UNCHECKED);
98
99 CheckDlgButton(hwndDlg,
101 pGlobalData->stickyKeys.dwFlags & SKF_AUDIBLEFEEDBACK ? BST_CHECKED : BST_UNCHECKED);
102
103 CheckDlgButton(hwndDlg,
105 pGlobalData->stickyKeys.dwFlags & SKF_INDICATOR ? BST_CHECKED : BST_UNCHECKED);
106 break;
107
108 case WM_COMMAND:
109 switch (LOWORD(wParam))
110 {
112 pGlobalData->stickyKeys.dwFlags ^= SKF_HOTKEYACTIVE;
113 break;
114
116 pGlobalData->stickyKeys.dwFlags ^= SKF_TRISTATE;
117 break;
118
120 pGlobalData->stickyKeys.dwFlags ^= SKF_TWOKEYSOFF;
121 break;
122
124 pGlobalData->stickyKeys.dwFlags ^= SKF_AUDIBLEFEEDBACK;
125 break;
126
128 pGlobalData->stickyKeys.dwFlags ^= SKF_INDICATOR;
129 break;
130
131 case IDOK:
132 EndDialog(hwndDlg,
133 (pGlobalData->stickyKeys.dwFlags != pGlobalData->oldStickyKeys.dwFlags));
134 break;
135
136 case IDCANCEL:
137 EndDialog(hwndDlg, FALSE);
138 break;
139
140 default:
141 break;
142 }
143 break;
144 }
145
146 return FALSE;
147}
148
149
150static VOID
152{
153 TCHAR szBuffer[32];
154 TCHAR szSeconds[20];
155
156 if (LoadString(hApplet, IDS_SECONDS, szSeconds, 20) == 0)
157 lstrcpy(szSeconds, L"Seconds");
158
159 _stprintf(szBuffer, _T("%d.%d %s"),
160 nTimeMs / 1000, (nTimeMs % 1000) / 100,
161 szSeconds);
162
163 SendDlgItemMessage(hwnd, nId, CB_ADDSTRING, 0, (LPARAM)szBuffer);
164}
165
166
169 UINT uMsg,
172{
173 PGLOBAL_DATA pGlobalData;
174 INT i, n;
175
176 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
177
178 switch (uMsg)
179 {
180 case WM_INITDIALOG:
181 pGlobalData = (PGLOBAL_DATA)lParam;
182 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
183
184 /* Determine the current bounce time */
185 if (pGlobalData->filterKeys.iBounceMSec == 0)
186 pGlobalData->filterKeys.iBounceMSec = nBounceArray[0];
187
188 for (n = 0; n < BOUNCETICKS; n++)
189 {
190 if (pGlobalData->filterKeys.iBounceMSec < nBounceArray[n])
191 break;
192 }
193 n--;
194
195 for (i = 0; i < BOUNCETICKS; i++)
196 {
198 }
199
201 break;
202
203 case WM_COMMAND:
204 switch (LOWORD(wParam))
205 {
208 {
210 if (i != CB_ERR)
211 {
212 pGlobalData->filterKeys.iBounceMSec = nBounceArray[i];
213 }
214 }
215 break;
216
218 switch (HIWORD(wParam))
219 {
220 case EN_SETFOCUS:
221 EnableFilterKeysTest(pGlobalData);
222 break;
223
224 case EN_KILLFOCUS:
225 DisableFilterKeysTest(pGlobalData);
226 break;
227 }
228 break;
229
230 case IDOK:
231 EndDialog(hwndDlg, TRUE);
232 break;
233
234 case IDCANCEL:
235 EndDialog(hwndDlg, FALSE);
236 break;
237
238 default:
239 break;
240 }
241 break;
242 }
243
244 return FALSE;
245}
246
247
250 UINT uMsg,
253{
254 PGLOBAL_DATA pGlobalData;
255 INT i, n;
256
257 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
258
259 switch (uMsg)
260 {
261 case WM_INITDIALOG:
262 pGlobalData = (PGLOBAL_DATA)lParam;
263 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
264
265 CheckRadioButton(hwndDlg,
268 (pGlobalData->filterKeys.iDelayMSec == 0) ? IDC_REPEAT_NOREPEAT_RADIO : IDC_REPEAT_REPEAT_RADIO);
269
270 /* Initialize the delay combobox */
271 for (n = 0; n < DELAYTICKS; n++)
272 {
273 if (pGlobalData->filterKeys.iDelayMSec < nDelayArray[n])
274 break;
275 }
276 n--;
277
278 for (i = 0; i < DELAYTICKS; i++)
279 {
281 }
282
284
285 /* Initialize the repeat combobox */
286 for (n = 0; n < REPEATTICKS; n++)
287 {
288 if (pGlobalData->filterKeys.iRepeatMSec < nRepeatArray[n])
289 break;
290 }
291 n--;
292
293 for (i = 0; i < REPEATTICKS; i++)
294 {
296 }
297
299
300 /* Disable the delay and repeat comboboxes if needed */
301 if (pGlobalData->filterKeys.iDelayMSec == 0)
302 {
305 }
306
307 /* Initialize the wait combobox */
308 for (n = 0; n < WAITTICKS; n++)
309 {
310 if (pGlobalData->filterKeys.iWaitMSec < nWaitArray[n])
311 break;
312 }
313 n--;
314
315 for (i = 0; i < WAITTICKS; i++)
316 {
318 }
319
321 break;
322
323 case WM_COMMAND:
324 switch (LOWORD(wParam))
325 {
327 pGlobalData->filterKeys.iDelayMSec = 0;
328 pGlobalData->filterKeys.iRepeatMSec = 0;
331 break;
332
336 break;
337
340 {
342 if (i != CB_ERR)
343 {
344 pGlobalData->filterKeys.iDelayMSec = nDelayArray[i];
345 }
346 }
347 break;
348
351 {
353 if (i != CB_ERR)
354 {
355 pGlobalData->filterKeys.iRepeatMSec = nRepeatArray[i];
356 }
357 }
358 break;
359
362 {
364 if (i != CB_ERR)
365 {
366 pGlobalData->filterKeys.iWaitMSec = nWaitArray[i];
367 }
368 }
369 break;
370
372 switch (HIWORD(wParam))
373 {
374 case EN_SETFOCUS:
375 EnableFilterKeysTest(pGlobalData);
376 break;
377
378 case EN_KILLFOCUS:
379 DisableFilterKeysTest(pGlobalData);
380 break;
381 }
382 break;
383
384 case IDOK:
385 EndDialog(hwndDlg, TRUE);
386 break;
387
388 case IDCANCEL:
389 EndDialog(hwndDlg, FALSE);
390 break;
391
392 default:
393 break;
394 }
395 break;
396 }
397
398 return FALSE;
399}
400
401
402/* Property page dialog callback */
405 UINT uMsg,
408{
409 PGLOBAL_DATA pGlobalData;
410
411 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
412
413 switch (uMsg)
414 {
415 case WM_INITDIALOG:
416 pGlobalData = (PGLOBAL_DATA)lParam;
417 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
418
419 memcpy(&pGlobalData->oldFilterKeys,
420 &pGlobalData->filterKeys,
421 sizeof(FILTERKEYS));
422
423 CheckDlgButton(hwndDlg,
425 pGlobalData->filterKeys.dwFlags & FKF_HOTKEYACTIVE ? BST_CHECKED : BST_UNCHECKED);
426
427 if (pGlobalData->filterKeys.iBounceMSec != 0)
428 {
432 }
433 else
434 {
438 }
439
440 CheckDlgButton(hwndDlg,
442 pGlobalData->filterKeys.dwFlags & FKF_CLICKON ? BST_CHECKED : BST_UNCHECKED);
443
444 CheckDlgButton(hwndDlg,
446 pGlobalData->filterKeys.dwFlags & FKF_INDICATOR ? BST_CHECKED : BST_UNCHECKED);
447 break;
448
449 case WM_COMMAND:
450 switch (LOWORD(wParam))
451 {
453 pGlobalData->filterKeys.dwFlags ^= FKF_HOTKEYACTIVE;
454 break;
455
459 break;
460
464 break;
465
469 hwndDlg,
471 (LPARAM)pGlobalData);
472 break;
473
475 switch (HIWORD(wParam))
476 {
477 case EN_SETFOCUS:
478 EnableFilterKeysTest(pGlobalData);
479 break;
480
481 case EN_KILLFOCUS:
482 DisableFilterKeysTest(pGlobalData);
483 break;
484 }
485 break;
486
488 pGlobalData->filterKeys.dwFlags ^= FKF_CLICKON;
489 break;
490
494 hwndDlg,
496 (LPARAM)pGlobalData);
497 break;
498
500 pGlobalData->filterKeys.dwFlags ^= FKF_INDICATOR;
501 break;
502
503 case IDOK:
504 EndDialog(hwndDlg,
505 (pGlobalData->filterKeys.dwFlags != pGlobalData->oldFilterKeys.dwFlags));
506 break;
507
508 case IDCANCEL:
509 EndDialog(hwndDlg, FALSE);
510 break;
511
512 default:
513 break;
514 }
515 break;
516 }
517
518 return FALSE;
519}
520
521
522/* Property page dialog callback */
525 UINT uMsg,
528{
529 PGLOBAL_DATA pGlobalData;
530
531 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
532
533 switch (uMsg)
534 {
535 case WM_INITDIALOG:
536 pGlobalData = (PGLOBAL_DATA)lParam;
537 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
538
539 memcpy(&pGlobalData->oldToggleKeys,
540 &pGlobalData->toggleKeys,
541 sizeof(TOGGLEKEYS));
542
543 CheckDlgButton(hwndDlg,
545 pGlobalData->toggleKeys.dwFlags & TKF_HOTKEYACTIVE ? BST_CHECKED : BST_UNCHECKED);
546 break;
547
548 case WM_COMMAND:
549 switch (LOWORD(wParam))
550 {
552 pGlobalData->toggleKeys.dwFlags ^= TKF_HOTKEYACTIVE;
553 break;
554
555 case IDOK:
556 EndDialog(hwndDlg,
557 (pGlobalData->toggleKeys.dwFlags != pGlobalData->oldToggleKeys.dwFlags));
558 break;
559
560 case IDCANCEL:
561 EndDialog(hwndDlg, FALSE);
562 break;
563
564 default:
565 break;
566 }
567 break;
568 }
569
570 return FALSE;
571}
572
573
574/* Property page dialog callback */
577 UINT uMsg,
580{
581 PGLOBAL_DATA pGlobalData;
582 LPPSHNOTIFY lppsn;
583
584 pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
585
586 switch (uMsg)
587 {
588 case WM_INITDIALOG:
589 pGlobalData = (PGLOBAL_DATA)((LPPROPSHEETPAGE)lParam)->lParam;
590 if (pGlobalData == NULL)
591 return FALSE;
592
593 SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
594
595 CheckDlgButton(hwndDlg,
597 pGlobalData->stickyKeys.dwFlags & SKF_STICKYKEYSON ? BST_CHECKED : BST_UNCHECKED);
598
599 CheckDlgButton(hwndDlg,
601 pGlobalData->filterKeys.dwFlags & FKF_FILTERKEYSON ? BST_CHECKED : BST_UNCHECKED);
602
603 CheckDlgButton(hwndDlg,
605 pGlobalData->toggleKeys.dwFlags & TKF_TOGGLEKEYSON ? BST_CHECKED : BST_UNCHECKED);
606
607 CheckDlgButton(hwndDlg,
609 pGlobalData->bKeyboardPref ? BST_CHECKED : BST_UNCHECKED);
610 return TRUE;
611
612 case WM_COMMAND:
613 switch (LOWORD(wParam))
614 {
615 case IDC_STICKY_BOX:
616 pGlobalData->stickyKeys.dwFlags ^= SKF_STICKYKEYSON;
617 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
618 break;
619
623 hwndDlg,
625 (LPARAM)pGlobalData))
626 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
627 break;
628
629 case IDC_FILTER_BOX:
630 pGlobalData->filterKeys.dwFlags ^= FKF_FILTERKEYSON;
631 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
632 break;
633
637 hwndDlg,
639 (LPARAM)pGlobalData))
640 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
641 break;
642
643 case IDC_TOGGLE_BOX:
644 pGlobalData->toggleKeys.dwFlags ^= TKF_TOGGLEKEYSON;
645 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
646 break;
647
651 hwndDlg,
653 (LPARAM)pGlobalData))
654 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
655 break;
656
658 pGlobalData->bKeyboardPref = !pGlobalData->bKeyboardPref;
659 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
660 break;
661
662 default:
663 break;
664 }
665 break;
666
667 case WM_NOTIFY:
668 lppsn = (LPPSHNOTIFY)lParam;
669 if (lppsn->hdr.code == PSN_APPLY)
670 {
672 sizeof(STICKYKEYS),
673 &pGlobalData->stickyKeys,
675
677 sizeof(FILTERKEYS),
678 &pGlobalData->filterKeys,
680
682 sizeof(TOGGLEKEYS),
683 &pGlobalData->toggleKeys,
685
686 SystemParametersInfo(SPI_SETKEYBOARDPREF,
687 pGlobalData->bKeyboardPref,
688 NULL,
690
691 return TRUE;
692 }
693 break;
694 }
695
696 return FALSE;
697}
struct _GLOBAL_DATA * PGLOBAL_DATA
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HINSTANCE hApplet
Definition: access.c:17
#define WAITTICKS
Definition: keyboard.c:21
INT_PTR CALLBACK StickyKeysDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: keyboard.c:68
INT_PTR CALLBACK ToggleKeysDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: keyboard.c:524
INT_PTR CALLBACK BounceKeysDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: keyboard.c:168
static UINT nWaitArray[WAITTICKS]
Definition: keyboard.c:22
#define BOUNCETICKS
Definition: keyboard.c:12
INT_PTR CALLBACK FilterKeysDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: keyboard.c:404
static UINT nDelayArray[DELAYTICKS]
Definition: keyboard.c:16
static VOID DisableFilterKeysTest(PGLOBAL_DATA pGlobalData)
Definition: keyboard.c:39
static UINT nRepeatArray[REPEATTICKS]
Definition: keyboard.c:19
INT_PTR CALLBACK KeyboardPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: keyboard.c:576
INT_PTR CALLBACK RepeatKeysDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: keyboard.c:249
#define REPEATTICKS
Definition: keyboard.c:18
static VOID EnableFilterKeysTest(PGLOBAL_DATA pGlobalData)
Definition: keyboard.c:26
#define DELAYTICKS
Definition: keyboard.c:15
static UINT nBounceArray[BOUNCETICKS]
Definition: keyboard.c:13
static VOID AddComboBoxTime(HWND hwnd, INT nId, INT nTimeMs)
Definition: keyboard.c:151
#define IDS_SECONDS
Definition: resource.h:30
#define IDC_TOGGLE_BUTTON
Definition: resource.h:39
#define IDC_FILTER_BOX
Definition: resource.h:36
#define IDC_FILTER_REPEAT_BUTTON
Definition: resource.h:70
#define IDD_TOGGLEKEYSOPTIONS
Definition: resource.h:16
#define IDC_REPEAT_REPEAT_COMBO
Definition: resource.h:81
#define IDC_TOGGLE_ACTIVATE_CHECK
Definition: resource.h:85
#define IDC_REPEAT_TEST_EDIT
Definition: resource.h:83
#define IDC_STICKY_SOUND_CHECK
Definition: resource.h:63
#define IDC_FILTER_REPEAT_RADIO
Definition: resource.h:68
#define IDC_REPEAT_DELAY_COMBO
Definition: resource.h:80
#define IDD_FILTERKEYSOPTIONS
Definition: resource.h:13
#define IDC_FILTER_BOUNCE_RADIO
Definition: resource.h:67
#define IDC_FILTER_ACTIVATE_CHECK
Definition: resource.h:66
#define IDC_FILTER_SOUND_CHECK
Definition: resource.h:72
#define IDC_REPEAT_WAIT_COMBO
Definition: resource.h:82
#define IDC_FILTER_TEST_EDIT
Definition: resource.h:71
#define IDC_BOUNCE_TEST_EDIT
Definition: resource.h:76
#define IDD_BOUNCEKEYSOPTIONS
Definition: resource.h:14
#define IDC_BOUNCE_TIME_COMBO
Definition: resource.h:75
#define IDC_REPEAT_REPEAT_RADIO
Definition: resource.h:79
#define IDD_STICKYKEYSOPTIONS
Definition: resource.h:12
#define IDC_STICKY_UNLOCK_CHECK
Definition: resource.h:62
#define IDC_STICKY_STATUS_CHECK
Definition: resource.h:64
#define IDC_TOGGLE_BOX
Definition: resource.h:38
#define IDC_FILTER_BUTTON
Definition: resource.h:37
#define IDC_KEYBOARD_EXTRA
Definition: resource.h:40
#define IDD_REPEATKEYSOPTIONS
Definition: resource.h:15
#define IDC_STICKY_ACTIVATE_CHECK
Definition: resource.h:60
#define IDC_FILTER_BOUNCE_BUTTON
Definition: resource.h:69
#define IDC_FILTER_STATUS_CHECK
Definition: resource.h:73
#define IDC_STICKY_BOX
Definition: resource.h:34
#define IDC_REPEAT_NOREPEAT_RADIO
Definition: resource.h:78
#define IDC_STICKY_BUTTON
Definition: resource.h:35
#define IDC_STICKY_LOCK_CHECK
Definition: resource.h:61
#define CALLBACK
Definition: compat.h:35
GLdouble n
Definition: glext.h:7729
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
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
#define _stprintf
Definition: utility.h:124
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
#define L(x)
Definition: ntvdm.h:50
#define LOWORD(l)
Definition: pedump.c:82
#define PropSheet_Changed(d, w)
Definition: prsht.h:344
#define PSN_APPLY
Definition: prsht.h:117
#define LPPROPSHEETPAGE
Definition: prsht.h:390
struct _PSHNOTIFY * LPPSHNOTIFY
#define WM_NOTIFY
Definition: richedit.h:61
FILTERKEYS oldFilterKeys
Definition: access.h:32
FILTERKEYS filterKeys
Definition: access.h:31
NMHDR hdr
Definition: prsht.h:330
DWORD dwFlags
Definition: winuser.h:3356
UINT code
Definition: winuser.h:3159
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
int32_t INT_PTR
Definition: typedefs.h:64
int32_t INT
Definition: typedefs.h:58
#define HIWORD(l)
Definition: typedefs.h:247
#define _T(x)
Definition: vfdio.h:22
#define lstrcpy
Definition: winbase.h:3874
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define SPI_SETSTICKYKEYS
Definition: winuser.h:1408
#define TKF_HOTKEYACTIVE
Definition: winuser.h:2184
#define DWLP_USER
Definition: winuser.h:872
#define SKF_HOTKEYACTIVE
Definition: winuser.h:2176
#define FKF_INDICATOR
Definition: winuser.h:2133
#define EN_KILLFOCUS
Definition: winuser.h:2025
BOOL WINAPI CheckDlgButton(_In_ HWND, _In_ int, _In_ UINT)
#define IDCANCEL
Definition: winuser.h:831
#define BST_UNCHECKED
Definition: winuser.h:199
#define SKF_STICKYKEYSON
Definition: winuser.h:2179
#define EN_SETFOCUS
Definition: winuser.h:2027
#define WM_COMMAND
Definition: winuser.h:1740
#define CB_ERR
Definition: winuser.h:2435
#define CB_SETCURSEL
Definition: winuser.h:1961
#define DialogBoxParam
Definition: winuser.h:5764
#define WM_INITDIALOG
Definition: winuser.h:1739
#define SKF_AUDIBLEFEEDBACK
Definition: winuser.h:2173
#define FKF_HOTKEYACTIVE
Definition: winuser.h:2130
#define SPI_SETFILTERKEYS
Definition: winuser.h:1400
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:830
#define CBN_SELCHANGE
Definition: winuser.h:1979
#define SPIF_SENDCHANGE
Definition: winuser.h:1572
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1571
#define SKF_INDICATOR
Definition: winuser.h:2178
#define SPI_SETTOGGLEKEYS
Definition: winuser.h:1402
#define CB_ADDSTRING
Definition: winuser.h:1936
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
#define FKF_FILTERKEYSON
Definition: winuser.h:2129
HWND WINAPI GetParent(_In_ HWND)
#define LoadString
Definition: winuser.h:5819
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)
#define SKF_TWOKEYSOFF
Definition: winuser.h:2181
#define SystemParametersInfo
Definition: winuser.h:5858
#define SKF_TRISTATE
Definition: winuser.h:2180
#define CB_GETCURSEL
Definition: winuser.h:1943
#define SendDlgItemMessage
Definition: winuser.h:5842
#define MAKEINTRESOURCE
Definition: winuser.h:591
#define FKF_CLICKON
Definition: winuser.h:2128
#define BST_CHECKED
Definition: winuser.h:197
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)
#define TKF_TOGGLEKEYSON
Definition: winuser.h:2186
char TCHAR
Definition: xmlstorage.h:189