ReactOS 0.4.16-dev-2104-gb84fa49
NtUserSystemParametersInfo.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtUserSystemParametersInfo
5 * PROGRAMMERS:
6 */
7
8#include "../win32nt.h"
9
10#include <winreg.h>
11
12static const WCHAR* KEY_MOUSE = L"Control Panel\\Mouse";
13//static const WCHAR* VAL_MOUSE1 = L"MouseThreshold1";
14//static const WCHAR* VAL_MOUSE2 = L"MouseThreshold2";
15//static const WCHAR* VAL_MOUSE3 = L"MouseSpeed";
16//static const WCHAR* VAL_DBLCLKWIDTH = L"DoubleClickWidth";
17//static const WCHAR* VAL_DBLCLKHEIGHT = L"DoubleClickHeight";
18//static const WCHAR* VAL_DBLCLKTIME = L"DoubleClickSpeed";
19static const WCHAR* VAL_SWAP = L"SwapMouseButtons";
20
21static const WCHAR* KEY_DESKTOP = L"Control Panel\\Desktop";
22//static const WCHAR* VAL_SCRTO = L"ScreenSaveTimeOut";
23//static const WCHAR* VAL_SCRACT = L"ScreenSaveActive";
24//static const WCHAR* VAL_GRID = L"GridGranularity";
25//static const WCHAR* VAL_DRAG = L"DragFullWindows";
26//static const WCHAR* VAL_DRAGHEIGHT = L"DragHeight";
27//static const WCHAR* VAL_DRAGWIDTH = L"DragWidth";
28//static const WCHAR* VAL_FNTSMOOTH = L"FontSmoothing";
29static const WCHAR* VAL_PREFMASK = L"UserPreferencesMask";
30
31enum
32{
41 UPM_RESERVED = 0x100,
42 UPM_MENUFADE = 0x200,
47 UPM_CLICKLOCK = 0x8000,
48 // room for more
49 UPM_UIEFFECTS = 0x80000000,
50 UPM_DEFAULT = 0x80003E9E
52
53
54//static const WCHAR* KEY_MDALIGN = L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows";
55//static const WCHAR* VAL_MDALIGN = L"MenuDropAlignment";
56
57static const WCHAR* KEY_METRIC = L"Control Panel\\Desktop\\WindowMetrics";
58//static const WCHAR* VAL_BORDER = L"BorderWidth";
59//static const WCHAR* VAL_ICONSPC = L"IconSpacing";
60//static const WCHAR* VAL_ICONVSPC = L"IconVerticalspacing";
61//static const WCHAR* VAL_ITWRAP = L"IconTitleWrap";
62
63static const WCHAR* KEY_SOUND = L"Control Panel\\Sound";
64static const WCHAR* VAL_BEEP = L"Beep";
65
66//static const WCHAR* KEY_KBD = L"Control Panel\\Keyboard";
67//static const WCHAR* VAL_KBDSPD = L"KeyboardSpeed";
68//static const WCHAR* VAL_KBDDELAY = L"KeyboardDelay";
69
70//static const WCHAR* KEY_SHOWSNDS = L"Control Panel\\Accessibility\\ShowSounds";
71//static const WCHAR* KEY_KDBPREF = L"Control Panel\\Accessibility\\Keyboard Preference";
72//static const WCHAR* KEY_SCRREAD = L"Control Panel\\Accessibility\\Blind Access";
73//static const WCHAR* VAL_ON = L"On";
74
75LONG
77{
78 HKEY hKey;
79 LONG ret;
80
82 ret = RegQueryValueExW(hKey, pszValueName, NULL, pType, (LPBYTE)pData, cbSize);
84 return ret;
85}
86
87
88HWND
90{
92 WNDCLASSA wc;
93
94 wc.style = 0;
96 wc.cbClsExtra = 0;
97 wc.cbWndExtra = 0;
98 wc.hInstance = hinst;
99 wc.hIcon = NULL;
100 wc.hCursor = NULL;
101 wc.hbrBackground = NULL;
102 wc.lpszMenuName = NULL;
103 wc.lpszClassName = "testclass";
104
105 RegisterClassA(&wc);
106 return CreateWindowA("testclass",
107 "testwnd",
109 0,
110 0,
111 50,
112 30,
113 NULL,
114 NULL,
115 hinst,
116 0);
117}
118
119void
121{
122// UINT uint;
123 DWORD data[1000];
124 UINT i, uint;
125 ACCESSTIMEOUT ato;
126 /* Test normal */
128 TEST(NtUserSystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, &uint, 0) == TRUE);
130
131 /* Test invalid SPI code */
135
136 /* Test wrong cbSize member */
137 ato.cbSize = 1;
138 SetLastError(0xdeadbeef);
140 TEST(GetLastError() == 0xdeadbeef);
141#if 0
142 /* Test undocumented, but valid SPI codes */
143 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
145 TEST(NtUserSystemParametersInfo(0x1010, 0, &data, 0) == TRUE);
147 TEST(data[0] <= 1);
148 TEST(data[1] == 0xdeadbeef);
149
150 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
152 TEST(NtUserSystemParametersInfo(0x1011, 0, &data, 0) == TRUE);
154 TEST(data[0] == 0xbeefdead);
155 TEST(data[1] == 0xbeefdead);
156 data[0] = 0;
157 NtUserSystemParametersInfo(0x1010, 0, &data, 0);
158 TEST(data[0] == 1);
159
160 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
162 TEST(NtUserSystemParametersInfo(0x1028, 0, &data, 0) == TRUE);
164 TEST(data[0] != 0xdeadbeef);
165 TEST(data[1] == 0xdeadbeef);
166
167 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
169 TEST(NtUserSystemParametersInfo(0x1029, 0, &data, 0) == TRUE);
171 TEST(data[0] == 0xbeefdead);
172 TEST(data[1] == 0xbeefdead);
173
174 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
176 TEST(NtUserSystemParametersInfo(0x102A, 0, &data, 0) == TRUE);
178 TEST(data[0] != 0xdeadbeef);
179 TEST(data[1] == 0xdeadbeef);
180
181 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
183 TEST(NtUserSystemParametersInfo(4139, 0, &data, 0) == TRUE);
185 TEST(data[0] == 0xbeefdead);
186 TEST(data[1] == 0xbeefdead);
187
188 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
190 TEST(NtUserSystemParametersInfo(4140, 0, &data, 0) == TRUE);
192 TEST(data[0] != 0xdeadbeef);
193 TEST(data[1] == 0xdeadbeef);
194
195 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
197 TEST(NtUserSystemParametersInfo(4141, 0, &data, 0) == TRUE);
199 TEST(data[0] == 0xbeefdead);
200 TEST(data[1] == 0xbeefdead);
201
202 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
204 TEST(NtUserSystemParametersInfo(4142, 0, &data, 0) == TRUE);
206 TEST(data[0] != 0xdeadbeef);
207 TEST(data[1] == 0xdeadbeef);
208
209 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
211 TEST(NtUserSystemParametersInfo(4143, 0, &data, 0) == TRUE);
213 TEST(data[0] == 0xbeefdead);
214 TEST(data[1] == 0xbeefdead);
215
216 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
218 TEST(NtUserSystemParametersInfo(4144, 0, &data, 0) == TRUE);
220 TEST(data[0] != 0xdeadbeef);
221 TEST(data[1] == 0xdeadbeef);
222
223 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
225 TEST(NtUserSystemParametersInfo(4145, 0, &data, 0) == TRUE);
227 TEST(data[0] == 0xbeefdead);
228 TEST(data[1] == 0xbeefdead);
229
230 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
232 TEST(NtUserSystemParametersInfo(4146, 0, &data, 0) == TRUE);
234 TEST(data[0] != 0xdeadbeef);
235 TEST(data[1] == 0xdeadbeef);
236
237 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
239 TEST(NtUserSystemParametersInfo(4147, 0, &data, 0) == TRUE);
241 TEST(data[0] == 0xbeefdead);
242 TEST(data[1] == 0xbeefdead);
243
244 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
246 TEST(NtUserSystemParametersInfo(4148, 0, &data, 0) == TRUE);
248 TEST(data[0] != 0xdeadbeef);
249 TEST(data[1] == 0xdeadbeef);
250
251 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
253 TEST(NtUserSystemParametersInfo(4149, 0, &data, 0) == TRUE);
255 TEST(data[0] == 0xbeefdead);
256 TEST(data[1] == 0xbeefdead);
257
258 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
260 TEST(NtUserSystemParametersInfo(4150, 0, &data, 0) == TRUE);
262 TEST(data[0] != 0xdeadbeef);
263 TEST(data[1] == 0xdeadbeef);
264
265 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
267 TEST(NtUserSystemParametersInfo(4151, 0, &data, 0) == TRUE);
269 TEST(data[0] == 0xbeefdead);
270 TEST(data[1] == 0xbeefdead);
271
272 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
274 TEST(NtUserSystemParametersInfo(4152, 0, &data, 0) == TRUE);
276 TEST(data[0] != 0xdeadbeef);
277 TEST(data[1] == 0xdeadbeef);
278
279 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
281 TEST(NtUserSystemParametersInfo(4153, 0, &data, 0) == TRUE);
283 TEST(data[0] == 0xbeefdead);
284 TEST(data[1] == 0xbeefdead);
285
286 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
288 TEST(NtUserSystemParametersInfo(4154, 0, &data, 0) == TRUE);
290 TEST(data[0] != 0xdeadbeef);
291 TEST(data[1] == 0xdeadbeef);
292
293 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
295 TEST(NtUserSystemParametersInfo(4155, 0, &data, 0) == TRUE);
297 TEST(data[0] == 0xbeefdead);
298 TEST(data[1] == 0xbeefdead);
299
300 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
302 TEST(NtUserSystemParametersInfo(4156, 0, &data, 0) == TRUE);
304 TEST(data[0] != 0xdeadbeef);
305 TEST(data[1] == 0xdeadbeef);
306
307 for(i = 0; i < 1000; i++) data[i] = 0xbeefdead;
309 TEST(NtUserSystemParametersInfo(4157, 0, &data, 0) == TRUE);
311 TEST(data[0] == 0xbeefdead);
312 TEST(data[1] == 0xbeefdead);
313#endif
314 /* Test invalid pointer */
316 TEST(NtUserSystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, (PVOID)(LONG_PTR)0x80000000, 0) == FALSE);
318 for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
319
320 /* test wrong bools */
321}
322
323void
325{
326 HWINSTA hwinsta, hwinstaOld;
327 INT ai[20];
328 BOOL bRet;
329// INT i;
330
331 hwinstaOld = GetProcessWindowStation();
334 printf("hwinstaOld=%p, hwinsta=%p\n", hwinstaOld, hwinsta);
335
336#if 1 // currently Winsta stuff is broken in ros
337 TEST(SystemParametersInfoA(SPI_GETBEEP, 0, ai, 0) == 0);
339 TEST(SystemParametersInfoA(SPI_SETBEEP, 0, ai, 0) == 0);
341 TEST(SystemParametersInfoA(SPI_GETMOUSE, 0, ai, 0) == 0);
343 TEST(SystemParametersInfoA(SPI_SETMOUSE, 0, ai, 0) == 0);
361 TEST(SystemParametersInfoA(SPI_GETKEYBOARDCUES, 0, &bRet, 0) == 0);
363 TEST(SystemParametersInfoA(SPI_SETKEYBOARDCUES, 0, (PVOID)1, 0) == 0);
365#endif
366
367 SetProcessWindowStation(hwinstaOld);
368}
369
370void
372{
373 ACCESSTIMEOUT ato;
374// UINT uFocusBorderHeight;
375 WCHAR Buffer[6];
376 DWORD cbSize;
377
378 ato.cbSize = sizeof(ato);
380 ato.iTimeOutMSec++;
382 ato.iTimeOutMSec--;
383
384// NtUserSystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, &uFocusBorderHeight, 0);
385// NtUserSystemParametersInfo(SPI_SETFOCUSBORDERHEIGHT, 0, &uFocusBorderHeight, SPIF_UPDATEINIFILE);
386
388
389 cbSize = 6;
390 QueryUserRegValueW(L"Control Panel\\Accessibility\\TimeOut", L"TimeToWait", &Buffer, &cbSize, NULL);
391
392}
393
394void
396{
397 WCHAR szReg[10];
398 DWORD cbSize;
399
400 cbSize = sizeof(szReg);
401 ok(QueryUserRegValueW(KEY_METRIC, pwszVal, &szReg, &cbSize, NULL) == ERROR_SUCCESS, "Value=%S\n", pwszVal);
402 ok(_wcsicmp(szReg, L"1") == 0, "Value=%S\n", pwszVal);
403
404}
405
406void
407Test_UserPref(UINT uiGet, UINT uiSet, DWORD dwPrefMask)
408{
409 BOOL bOrig, bTemp = 0;
410 DWORD dwUserPref, dwUserPrefOrg;
411 DWORD cbSize;
412
413 /* Get original values */
414 NtUserSystemParametersInfo(uiGet, 0, &bOrig, 0);
415 cbSize = sizeof(dwUserPrefOrg);
416 QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefOrg, &cbSize, NULL);
417
418 /* Value 0 */
420 NtUserSystemParametersInfo(uiGet, 0, &bTemp, 0);
421 TEST(bTemp == 0);
422 cbSize = sizeof(dwUserPref);
424 TEST((dwUserPref & dwPrefMask) == 0);
425 TEST((dwUserPref & (~dwPrefMask)) == (dwUserPrefOrg & (~dwPrefMask)));
426
427 /* Value 1 without Registry */
428 NtUserSystemParametersInfo(uiSet, 0, (PVOID)1, 0);
429 NtUserSystemParametersInfo(uiGet, 0, &bTemp, 0);
430 TEST(bTemp == 1);
431 cbSize = sizeof(dwUserPref);
433 TEST((dwUserPref & dwPrefMask) == 0);
434 TEST((dwUserPref & (~dwPrefMask)) == (dwUserPrefOrg & (~dwPrefMask)));
435
436 /* Value 2 without Registry */
437 NtUserSystemParametersInfo(uiSet, 0, (PVOID)2, 0);
438 NtUserSystemParametersInfo(uiGet, 0, &bTemp, 0);
439 TEST(bTemp == 1);
440 cbSize = sizeof(dwUserPref);
442 TEST((dwUserPref & dwPrefMask) == 0);
443 TEST((dwUserPref & (~dwPrefMask)) == (dwUserPrefOrg & (~dwPrefMask)));
444
445 /* Value 1 with Registry */
447 NtUserSystemParametersInfo(uiGet, 0, &bTemp, 0);
448 TEST(bTemp == 1);
449 cbSize = sizeof(dwUserPref);
451 TEST((dwUserPref & dwPrefMask) == dwPrefMask);
452 TEST((dwUserPref & (~dwPrefMask)) == (dwUserPrefOrg & (~dwPrefMask)));
453
454 /* Restore original value */
456
457
458}
459
460
461/******************************************************************************/
462
463void
465{
466 BOOL bOrig, bTemp = 0;
467 WCHAR szReg[10];
468 DWORD cbSize;
469 BOOL bRet;
470
471 /* Get original value */
472 bRet = NtUserSystemParametersInfo(SPI_GETBEEP, 0, &bOrig, 0);
473 ok_eq_bool(bRet, 1);
474 if (bRet != 1)
475 {
476 skip("Cannot get original beep value\n");
477 return;
478 }
479
480 /* Value 0 */
483 ok_eq_bool(bTemp, FALSE);
484 cbSize = sizeof(szReg);
486 TEST(_wcsicmp(szReg, L"No") == 0);
487
488 /* Value 1 */
491 ok_eq_bool(bTemp, TRUE);
492 cbSize = sizeof(szReg);
494 TEST(_wcsicmp(szReg, L"Yes") == 0);
495
496 /* Value 2 */
499 ok_eq_bool(bTemp, TRUE);
500 cbSize = sizeof(szReg);
502 ok_eq_size(_wcsicmp(szReg, L"Yes"), 0);
503
504 /* Restore original value */
506}
507
508void
510{
511 INT aiOrig[3], aiTemp[3];
512 BOOL bRet;
513
514 /* Get original value */
515 bRet = NtUserSystemParametersInfo(SPI_GETMOUSE, 0, aiOrig, 0);
516 ok_eq_bool(bRet, 1);
517 if (bRet != 1)
518 {
519 skip("Cannot get original mouse value\n");
520 return;
521 }
522
523 /* Test uiParam value */
527 ok_eq_bool(NtUserSystemParametersInfo(SPI_GETMOUSE, 0xdeadbeef, aiTemp, 0), 1);
528
529 /* Set modified values */
530 aiTemp[0] = aiOrig[0] + 1;
531 aiTemp[1] = aiOrig[1] - 1;
532 aiTemp[2] = aiOrig[2] + 2;
534 aiTemp[0] = aiTemp[1] = aiTemp[2] = 0;
535
536 /* Get new values */
538
539 /* Test modified values */
540#if 0 // Doesn't work on all Windows versions
541 ok_eq_int(aiTemp[0], aiOrig[0] + 1);
542 ok_eq_int(aiTemp[1], aiOrig[1] - 1);
543 ok_eq_int(aiTemp[2], aiOrig[2] + 2);
544#endif
545
546 // FIXME: Test registry values
547
548 /* Restore original value */
550}
551
552void
554{
555 INT iOrig, iTemp = 0;
556 BOOL bRet;
557
558 /* Get original value */
559 bRet = NtUserSystemParametersInfo(SPI_GETBORDER, 0, &iOrig, 0);
560 ok_eq_bool(bRet, 1);
561 if (bRet != 1)
562 {
563 skip("Cannot get original border value\n");
564 return;
565 }
566
567 /* Value 0 */
570 ok_eq_int(iTemp, 1);
572
573 /* Value 1 */
576 ok_eq_int(iTemp, 1);
577// Test_MetricKey(pti, VAL_BORDER, 1);
578#if 0 // Doesn't work on all windows versions
579 /* Value 2 */
582 TEST(iTemp == 2);
584#endif
585 /* Restore original value */
587
588}
589
590// Test_SPI_SETKEYBOARDSPEED();
591// Test_SPI_LANGDRIVER();
592// Test_SPI_ICONHORIZONTALSPACING();
593// Test_SPI_SETSCREENSAVETIMEOUT();
594// Test_SPI_SETSCREENSAVEACTIVE();
595// Test_SPI_SETGRIDGRANULARITY();
596
597void
599{
600 UNICODE_STRING ustrOld, ustrNew;
601 WCHAR szOld[MAX_PATH];
602 WCHAR szNew[MAX_PATH];
603
604 /* Get old Wallpaper */
606 RtlInitUnicodeString(&ustrOld, szOld);
607
608 /* Set no Wallpaper */
609#ifndef _M_AMD64
611#endif
613 TEST(szNew[0] == 0);
614
615 /* Set no Wallpaper 2 */
616 RtlInitUnicodeString(&ustrNew, L"");
619 TEST(szNew[0] == 0);
620
621 /* Reset Wallpaper */
624 TEST(wcscmp(szNew, szOld) == 0);
625
626 /* Set new Wallpaper */
627#if 0 // This is broken
628 RtlInitUnicodeString(&ustrNew, L"test.bmp");
631 TEST(wcscmp(szNew, L"test.bmp") == 0);
632#endif
633
634 /* Get Wallpaper, too small buffer */
635 szNew[0] = 0; szNew[1] = 0; szNew[2] = 0;
637#if 0 // This is broken
638 TEST(szNew[0] != 0);
639 TEST(szNew[1] != 0);
640 TEST(szNew[2] != 0);
641#endif
642
643 /* Set invalid Wallpaper */
644 SetLastError(0xdeadbeef);
645 RtlInitUnicodeString(&ustrNew, L"*#!!-&");
649 TEST(wcscmp(szNew, L"*#!!-&") == 0);
650
651 /* Restore old Wallpaper */
653
654}
655
656// Test_SPI_SETDESKPATTERN();
657// Test_SPI_SETKEYBOARDDELAY();
658// Test_SPI_ICONVERTICALSPACING();
659// Test_SPI_SETICONTITLEWRAP();
660// Test_SPI_SETMENUDROPALIGNMENT();
661// Test_SPI_SETDOUBLECLKWIDTH();
662// Test_SPI_SETDOUBLECLKHEIGHT();
663// Test_SPI_SETDOUBLECLICKTIME();
664
665void
667{
668 BOOL bOrig, bTemp = 0;
669 WCHAR szReg[10];
670 DWORD cbSize;
671
672 /* Get original value */
674
675 /* Value 0 */
678 TEST(bTemp == 0);
679 cbSize = sizeof(szReg);
681 TEST(_wcsicmp(szReg, L"0") == 0);
682
683 /* Value 1 */
686 TEST(bTemp == 1);
687 cbSize = sizeof(szReg);
689 TEST(_wcsicmp(szReg, L"1") == 0);
690
691 /* Value 2 */
694 TEST(bTemp == 1);
695 cbSize = sizeof(szReg);
697 TEST(_wcsicmp(szReg, L"2") == 0);
698
699 /* Value -1 */
702 TEST(bTemp == 1);
703 cbSize = sizeof(szReg);
705 TEST(_wcsicmp(szReg, L"-1") == 0);
706
707 /* Restore original value */
709
710
711}
712
713void
715{
716 LOGFONTW lfOrig;
717 struct
718 {
719 LOGFONTW lf;
720 DWORD dwRedzone;
721 } buf;
722 BOOL bRet;
723
724 /* Get original value */
725 bRet = NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lfOrig), &lfOrig, 0);
726 ok_eq_bool(bRet, 1);
727 if (bRet != 1)
728 {
729 skip("Cannot get original icon title logfont\n");
730 return;
731 }
732
733 /* Test uiParam == 0 */
734 memset(&buf, 0, sizeof(buf));
735 buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
736 buf.dwRedzone = 0xdeadbeef;
738 TEST(buf.lf.lfHeight != 0);
739 TEST(buf.lf.lfWeight != 0);
740 TEST(buf.lf.lfFaceName[0] != 0);
741 TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
742 TEST(buf.dwRedzone == 0xdeadbeef);
743
744 /* Test uiParam < sizeof(LOGFONTW) */
745 memset(&buf, 0, sizeof(buf));
746 buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
747 buf.dwRedzone = 0xdeadbeef;
749 TEST(buf.lf.lfHeight != 0);
750 TEST(buf.lf.lfWeight != 0);
751 TEST(buf.lf.lfFaceName[0] != 0);
752 TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
753 TEST(buf.dwRedzone == 0xdeadbeef);
754
755 /* Test uiParam < 0 */
757}
758
759void
761{
762 char buf[10];
765
766
767}
768
769void
771{
772
773}
774
775void
777{
778 NONCLIENTMETRICSW metrics;
779 NONCLIENTMETRICSW origMetrics;
780
781 metrics.cbSize = sizeof(NONCLIENTMETRICSW);
782 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &metrics, 0) == 1);
783 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
784
785 origMetrics = metrics;
786
787 metrics.cbSize = sizeof(NONCLIENTMETRICSW) + 10;
788 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
789 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
790 ok(metrics.cbSize == sizeof(NONCLIENTMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(NONCLIENTMETRICSW), (ULONG)metrics.cbSize);
791
792 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
793}
794
795void
797{
799 MINIMIZEDMETRICS origMetrics;
800
802 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)&metrics, 0) == 1);
803 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
804
805 origMetrics = metrics;
806
807 metrics.cbSize = sizeof(MINIMIZEDMETRICS) + 10;
808 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
809 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
810 ok(metrics.cbSize == sizeof(MINIMIZEDMETRICS), "Expected size: %lu, got %lu\n", (ULONG)sizeof(MINIMIZEDMETRICS), (ULONG)metrics.cbSize);
811
812 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
813}
814
815void
817{
818 ICONMETRICSW metrics;
819 ICONMETRICSW origMetrics;
820
821 metrics.cbSize = sizeof(ICONMETRICSW);
822 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)&metrics, 0) == 1);
823 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
824
825 origMetrics = metrics;
826
827 metrics.cbSize = sizeof(ICONMETRICSW) + 10;
828 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
829 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
830 ok(metrics.cbSize == sizeof(ICONMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(ICONMETRICSW), (ULONG)metrics.cbSize);
831
832 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
833}
834
835void
837{
838 RECT rcOrig, rc;
839 BOOL bRet;
840
841 /* Get the original value */
842 bRet = NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, &rcOrig, 0);
843 ok_eq_bool(bRet, 1);
844 if (bRet != 1)
845 {
846 skip("Cannot get original work area\n");
847 return;
848 }
849
850 /* Change value */
851 rc = rcOrig;
852 rc.left += 1;
853 rc.top += 2;
854 rc.right -= 3;
855 rc.bottom -= 2;
856 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 1, &rc, 0) == 1);
857 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
858 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, sizeof(RECT), &rc, 0) == 1);
859
860 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 1, &rc, 0) == 1);
861 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, -1, &rc, 0) == 1);
862 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0xdeadbeef, &rc, 0) == 1);
863 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
864
865 /* Test values */
866 rc = rcOrig; rc.left = -1;
867 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
868 rc = rcOrig; rc.top = -1;
869 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
870 rc = rcOrig; rc.top = 10; rc.bottom = 11;
871 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
872 rc = rcOrig; rc.top = 10; rc.bottom = 10;
873 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
874 rc = rcOrig; rc.top = 10; rc.bottom = 9;
875 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
876 rc = rcOrig; rc.left = 10; rc.right = 11;
877 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
878 rc = rcOrig; rc.left = 10; rc.right = 10;
879 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
880 rc = rcOrig; rc.left = 10; rc.right = 9;
881 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
882 rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN);
883 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
884 rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN)+1;
885 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
886 rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN);
887 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
888 rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN)+1;
889 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
890
891 /* Restore original value */
892 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rcOrig, 0), 1);
893}
894
895void
897{
898
899}
900
901void
903{
904
905}
906
907void
909{
910
911}
912
913void
915{
916
917}
918
919void
921{
922
923}
924
925void
927{
928 STICKYKEYS skOrig, sk;
929 BOOL bRet;
930
931 /* Get original values */
932 skOrig.cbSize = sizeof(STICKYKEYS);
933 bRet = NtUserSystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(STICKYKEYS), &skOrig, 0);
934 ok_eq_bool(bRet, 1);
935 if (bRet != 1)
936 {
937 skip("Cannot get original sticky keys\n");
938 return;
939 }
940
941 printf("sticky keys original dwFlags: 0x%08x\n", skOrig.dwFlags);
942
943 sk.cbSize = sizeof(STICKYKEYS)+1;
945
946 sk.cbSize = sizeof(STICKYKEYS)-1;
948
949 sk.cbSize = sizeof(STICKYKEYS);
953 ok_eq_bool(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(sk) - 1, &sk, 0), 0);
954 ok_eq_bool(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(sk) + 1, &sk, 0), 0);
955
956 sk = skOrig;
957 sk.dwFlags = (skOrig.dwFlags ^ SKF_AUDIBLEFEEDBACK);
958 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(sk) + 1, &sk, 0), 0);
959 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(sk) - 1, &sk, 0), 0);
961
962 sk = skOrig;
965
966 /* Restore original values */
967 skOrig.cbSize = sizeof(STICKYKEYS);
968 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(skOrig), &skOrig, 0), 1);
969}
970
971void
973{
974 ACCESSTIMEOUT atoOrig = { 0 }, atoTmp = { 0 };
975 BOOL bRet;
976
977 /* Get original values */
978 atoOrig.cbSize = sizeof(ACCESSTIMEOUT);
979 bRet = NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0);
980 ok_eq_bool(bRet, 1);
981 if (bRet != 1)
982 {
983 skip("Cannot get original access timeouts\n");
984 return;
985 }
986
987 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) - 1;
989 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) + 1;
991 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
993 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
995 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
997 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
998 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoTmp), &atoTmp, 0), 1);
999 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
1000 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoTmp) - 1, &atoTmp, 0), 0);
1001 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
1002 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoTmp) + 1, &atoTmp, 0), 0);
1003
1004 /* Restore original values */
1005 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0), 1);
1006}
1007
1008void
1010{
1011
1012}
1013
1014void
1016{
1017
1018}
1019
1020void
1022{
1023
1024}
1025
1026void
1028{
1029
1030}
1031
1032// Test_SPI_SETSCREENREADER();
1034// Test_SPI_SETFONTSMOOTHING();
1035// Test_SPI_SETDRAGWIDTH();
1036// Test_SPI_SETDRAGHEIGHT();
1037// Test_SPI_SETHANDHELD();
1038// Test_SPI_SETLOWPOWERTIMEOUT();
1039// Test_SPI_SETPOWEROFFTIMEOUT();
1040// Test_SPI_SETLOWPOWERACTIVE();
1041// Test_SPI_SETPOWEROFFACTIVE();
1042// Test_SPI_SETCURSORS();
1043// Test_SPI_SETICONS();
1044// Test_SPI_SETDEFAULTINPUTLANG();
1045// Test_SPI_SETLANGTOGGLE();
1046// Test_SPI_GETWINDOWSEXTENSION();
1047// Test_SPI_SETMOUSETRAILS();
1048// Test_SPI_SETSNAPTODEFBUTTON();
1049// Test_SPI_GETSCREENSAVERRUNNING();
1050// Test_SPI_SETMOUSEHOVERWIDTH();
1051// Test_SPI_SETMOUSEHOVERHEIGHT();
1052// Test_SPI_SETMOUSEHOVERTIME();
1053// Test_SPI_SETWHEELSCROLLLINES();
1054// Test_SPI_SETMENUSHOWDELAY();
1055// Test_SPI_SETWHEELSCROLLCHARS();
1056// Test_SPI_SETSHOWIMEUI();
1057// Test_SPI_SETMOUSESPEED();
1058// Test_SPI_GETSCREENSAVERRUNNING();
1059// Test_SPI_SETAUDIODESCRIPTION();
1060// Test_SPI_SETSCREENSAVESECURE();
1061// Test_SPI_SETACTIVEWINDOWTRACKING();
1062
1063void
1065{
1066 BOOL bOrig, bTemp = 0;
1067 DWORD dwUserPrefMask;
1068 DWORD cbSize;
1069
1070 /* Get original values */
1071 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bOrig, 0);
1072
1073 /* Value 0 */
1074 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, NULL, 0);
1075 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1076 TEST(bTemp == 0);
1077 cbSize = sizeof(dwUserPrefMask);
1078 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1079 TEST((dwUserPrefMask & UPM_MENUANIMATION) == 0);
1080
1081 /* Value 1 */
1082 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)1, 0);
1083 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1084 TEST(bTemp == 1);
1085 cbSize = sizeof(dwUserPrefMask);
1086 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1087 TEST((dwUserPrefMask & UPM_MENUANIMATION) != 0);
1088
1089 /* Restore original values */
1090 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)(ULONG_PTR)bOrig, 0);
1091}
1092
1093// Test_SPI_SETCOMBOBOXANIMATION();
1094// Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1095// Test_SPI_SETGRADIENTCAPTIONS();
1096
1097void
1099{
1100 Test_UserPref(SPI_GETKEYBOARDCUES, SPI_SETKEYBOARDCUES, UPM_KEYBOARDCUES);
1101}
1102
1103// Test_SPI_SETACTIVEWNDTRKZORDER();
1104// Test_SPI_SETHOTTRACKING();
1105// Test_SPI_SETMENUFADE();
1106// Test_SPI_SETSELECTIONFADE();
1107// Test_SPI_SETTOOLTIPANIMATION();
1108// Test_SPI_SETTOOLTIPFADE();
1109// Test_SPI_SETCURSORSHADOW();
1110// Test_SPI_SETMOUSESONAR();
1111
1112void
1114{
1115 Test_UserPref(SPI_GETMOUSECLICKLOCK, SPI_SETMOUSECLICKLOCK, UPM_CLICKLOCK);
1116}
1117
1118// Test_SPI_SETMOUSEVANISH();
1119// Test_SPI_SETFLATMENU();
1120// Test_SPI_SETDROPSHADOW();
1121// Test_SPI_SETBLOCKSENDINPUTRESETS();
1122// Test_SPI_GETSETUIEFFECTS();
1123// Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1124// Test_SPI_SETCLIENTAREAANIMATION();
1125// Test_SPI_SETCLEARTYPE();
1126// Test_SPI_SETSPEECHRECOGNITION();
1127// Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1128// Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1129// Test_SPI_SETFOREGROUNDFLASHCOUNT();
1130// Test_SPI_SETCARETWIDTH();
1131// Test_SPI_SETMOUSECLICKLOCKTIME();
1132// Test_SPI_SETFONTSMOOTHINGTYPE();
1133// Test_SPI_SETFONTSMOOTHINGCONTRAST();
1134// Test_SPI_SETFOCUSBORDERWIDTH();
1135// Test_SPI_SETFOCUSBORDERHEIGHT();
1136// Test_SPI_SETFONTSMOOTHINGORIENTATION();
1137
1138
1140{
1141 HWND hWnd;
1142
1144 ok(hWnd != NULL, "CreateTestWindow failed\n");
1145 if (!hWnd)
1146 {
1147 skip("Could not create test window\n");
1148 return;
1149 }
1150
1154
1158// Test_SPI_SETKEYBOARDSPEED();
1159// Test_SPI_LANGDRIVER();
1160// Test_SPI_ICONHORIZONTALSPACING();
1161// Test_SPI_SETSCREENSAVETIMEOUT();
1162// Test_SPI_SETSCREENSAVEACTIVE();
1163// Test_SPI_SETGRIDGRANULARITY();
1164// Test_SPI_SETDESKWALLPAPER();
1165// Test_SPI_SETDESKPATTERN();
1166// Test_SPI_SETKEYBOARDDELAY();
1167// Test_SPI_ICONVERTICALSPACING();
1168// Test_SPI_SETICONTITLEWRAP();
1169// Test_SPI_SETMENUDROPALIGNMENT();
1170// Test_SPI_SETDOUBLECLKWIDTH();
1171// Test_SPI_SETDOUBLECLKHEIGHT();
1172// Test_SPI_SETDOUBLECLICKTIME();
1173// Test_SPI_SETMOUSEBUTTONSWAP();
1175// Test_SPI_SETFASTTASKSWITCH();
1177// Test_SPI_SETNONCLIENTMETRICS();
1178// Test_SPI_SETMINIMIZEDMETRICS();
1179// Test_SPI_SETICONMETRICS();
1180// Test_SPI_SETWORKAREA(); // Messes up stuff!
1192// Test_SPI_SETSCREENREADER();
1194// Test_SPI_SETFONTSMOOTHING();
1195// Test_SPI_SETDRAGWIDTH();
1196// Test_SPI_SETDRAGHEIGHT();
1197// Test_SPI_SETHANDHELD();
1198// Test_SPI_SETLOWPOWERTIMEOUT();
1199// Test_SPI_SETPOWEROFFTIMEOUT();
1200// Test_SPI_SETLOWPOWERACTIVE();
1201// Test_SPI_SETPOWEROFFACTIVE();
1202// Test_SPI_SETCURSORS();
1203// Test_SPI_SETICONS();
1204// Test_SPI_SETDEFAULTINPUTLANG();
1205// Test_SPI_SETLANGTOGGLE();
1206// Test_SPI_GETWINDOWSEXTENSION();
1207// Test_SPI_SETMOUSETRAILS();
1208// Test_SPI_SETSNAPTODEFBUTTON();
1209// Test_SPI_GETSCREENSAVERRUNNING();
1210// Test_SPI_SETMOUSEHOVERWIDTH();
1211// Test_SPI_SETMOUSEHOVERHEIGHT();
1212// Test_SPI_SETMOUSEHOVERTIME();
1213// Test_SPI_SETWHEELSCROLLLINES();
1214// Test_SPI_SETMENUSHOWDELAY();
1215// Test_SPI_SETWHEELSCROLLCHARS();
1216// Test_SPI_SETSHOWIMEUI();
1217// Test_SPI_SETMOUSESPEED();
1218// Test_SPI_GETSCREENSAVERRUNNING();
1219// Test_SPI_SETAUDIODESCRIPTION();
1220// Test_SPI_SETSCREENSAVESECURE();
1221// Test_SPI_SETACTIVEWINDOWTRACKING();
1222// Test_SPI_SETMENUANIMATION();
1223// Test_SPI_SETCOMBOBOXANIMATION();
1224// Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1225// Test_SPI_SETGRADIENTCAPTIONS();
1226// Test_SPI_SETKEYBOARDCUES();
1227// Test_SPI_SETACTIVEWNDTRKZORDER();
1228// Test_SPI_SETHOTTRACKING();
1229// Test_SPI_SETMENUFADE();
1230// Test_SPI_SETSELECTIONFADE();
1231// Test_SPI_SETTOOLTIPANIMATION();
1232// Test_SPI_SETTOOLTIPFADE();
1233// Test_SPI_SETCURSORSHADOW();
1234// Test_SPI_SETMOUSESONAR();
1235// Test_SPI_SETMOUSECLICKLOCK();
1236// Test_SPI_SETMOUSEVANISH();
1237// Test_SPI_SETFLATMENU();
1238// Test_SPI_SETDROPSHADOW();
1239// Test_SPI_SETBLOCKSENDINPUTRESETS();
1240// Test_SPI_GETSETUIEFFECTS();
1241// Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1242// Test_SPI_SETCLIENTAREAANIMATION();
1243// Test_SPI_SETCLEARTYPE();
1244// Test_SPI_SETSPEECHRECOGNITION();
1245// Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1246// Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1247// Test_SPI_SETFOREGROUNDFLASHCOUNT();
1248// Test_SPI_SETCARETWIDTH();
1249// Test_SPI_SETMOUSECLICKLOCKTIME();
1250// Test_SPI_SETFONTSMOOTHINGTYPE();
1251// Test_SPI_SETFONTSMOOTHINGCONTRAST();
1252// Test_SPI_SETFOCUSBORDERWIDTH();
1253// Test_SPI_SETFOCUSBORDERHEIGHT();
1254// Test_SPI_SETFONTSMOOTHINGORIENTATION();
1255
1257}
void Test_NtUserSystemParametersInfo_Winsta(void)
static const WCHAR * KEY_DESKTOP
void Test_SPI_SETSHOWSOUNDS(void)
static const WCHAR * KEY_MOUSE
void Test_SPI_SETBORDER(void)
static const WCHAR * VAL_BEEP
void Test_SPI_SETSTICKYKEYS(void)
void Test_SPI_SETTOGGLEKEYS(void)
@ UPM_TOOLTIPANIMATION
@ UPM_COMBOBOXANIMATION
@ UPM_ACTIVEWINDOWTRACKING
@ UPM_GRADIENTCAPTIONS
@ UPM_LISTBOXSMOOTHSCROLLING
@ UPM_ACTIVEWNDTRKZORDER
static const WCHAR * VAL_SWAP
void Test_MetricKey(PCWSTR pwszVal, INT iVal)
void Test_SPI_SETHIGHCONTRAST(void)
static const WCHAR * KEY_SOUND
void Test_SPI_SETICONTITLELOGFONT(void)
void Test_SPI_SETDESKWALLPAPER(void)
LONG QueryUserRegValueW(PCWSTR pszSubKey, PCWSTR pszValueName, PVOID pData, LPDWORD cbSize, LPDWORD pType)
void Test_SPI_SETWORKAREA(void)
static const WCHAR * KEY_METRIC
void Test_SPI_SETBEEP(void)
void Test_SPI_SETPENWINDOWS(void)
void Test_NtUserSystemParametersInfo_fWinIni(void)
void Test_SPI_SETSOUNDSENTRY(void)
void Test_SPI_SETICONMETRICS(void)
void Test_SPI_SETMINIMIZEDMETRICS(void)
void Test_SPI_SETNONCLIENTMETRICS(void)
enum @1745 USERPREFMASKS
void Test_SPI_SETMOUSECLICKLOCK(void)
void Test_SPI_SETMENUANIMATION(void)
Test_SPI_SETANIMATION();.
void Test_NtUserSystemParametersInfo_Params(void)
void Test_SPI_SETKEYBOARDPREF(void)
void Test_SPI_SETACCESSTIMEOUT(void)
void Test_SPI_SETKEYBOARDCUES(void)
void Test_SPI_SETMOUSE(void)
void Test_SPI_SETSERIALKEYS(void)
void Test_SPI_SETDRAGFULLWINDOWS(void)
HWND CreateTestWindow()
void Test_SPI_SETFASTTASKSWITCH(void)
static const WCHAR * VAL_PREFMASK
void Test_UserPref(UINT uiGet, UINT uiSet, DWORD dwPrefMask)
void Test_SPI_SETMOUSEKEYS(void)
void Test_SPI_SETFILTERKEYS(void)
void Test_SPI_SETMOUSEBUTTONSWAP(void)
#define ok_eq_hex(value, expected)
Definition: apitest.h:134
#define ok_eq_size(value, expected)
Definition: apitest.h:126
#define ok_eq_int(value, expected)
Definition: apitest.h:117
#define ok_eq_bool(value, expected)
Definition: apitest.h:137
#define ok(value,...)
Definition: atltest.h:57
#define skip(...)
Definition: atltest.h:64
#define START_TEST(x)
Definition: atltest.h:75
HWND hWnd
Definition: settings.c:17
#define RegCloseKey(hKey)
Definition: registry.h:49
Definition: bufpool.h:45
#define ERROR_SUCCESS
Definition: deptool.c:10
#define LF_FACESIZE
Definition: dimm.idl:39
#define NULL
Definition: types.h:112
UINT32 uint
Definition: types.h:83
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4103
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
#define MAX_PATH
Definition: compat.h:34
#define ERROR_ACCESS_DENIED
Definition: compat.h:97
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:159
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1972
return ret
Definition: mutex.c:146
#define L(x)
Definition: resources.c:13
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
#define printf
Definition: freeldr.h:97
FxAutoRegKey hKey
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
Definition: glext.h:11745
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
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
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2179
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define TEST(x)
Definition: precomp.h:20
static HINSTANCE hinst
Definition: edit.c:551
#define SPI_GETDESKWALLPAPER
Definition: sysparams.c:34
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
#define KEY_QUERY_VALUE
Definition: nt_native.h:1019
#define READ_CONTROL
Definition: nt_native.h:58
#define WS_VISIBLE
Definition: pedump.c:620
long LONG
Definition: pedump.c:60
_In_opt_ LPCSTR pszSubKey
Definition: shlwapi.h:783
#define memset(x, y, z)
Definition: compat.h:39
HBRUSH hbrBackground
Definition: winuser.h:3272
HICON hIcon
Definition: winuser.h:3270
HINSTANCE hInstance
Definition: winuser.h:3269
HCURSOR hCursor
Definition: winuser.h:3271
int cbWndExtra
Definition: winuser.h:3268
UINT style
Definition: winuser.h:3265
LPCSTR lpszMenuName
Definition: winuser.h:3273
LPCSTR lpszClassName
Definition: winuser.h:3274
WNDPROC lpfnWndProc
Definition: winuser.h:3266
int cbClsExtra
Definition: winuser.h:3267
DWORD iTimeOutMSec
Definition: winuser.h:3033
Definition: windef.h:99
LONG right
Definition: windef.h:102
LONG bottom
Definition: windef.h:103
LONG top
Definition: windef.h:101
LONG left
Definition: windef.h:100
DWORD dwFlags
Definition: winuser.h:3632
DWORD cbSize
Definition: winuser.h:3631
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
const uint16_t * PCWSTR
Definition: typedefs.h:57
unsigned char * LPBYTE
Definition: typedefs.h:53
uint32_t * LPDWORD
Definition: typedefs.h:59
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG_PTR
Definition: typedefs.h:65
uint32_t ULONG
Definition: typedefs.h:59
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define GetModuleHandle
Definition: winbase.h:3576
HWINSTA WINAPI GetProcessWindowStation(void)
Definition: ntwrapper.h:124
#define ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
Definition: winerror.h:1285
#define ERROR_NOACCESS
Definition: winerror.h:902
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define SPI_SETSTICKYKEYS
Definition: winuser.h:1419
#define SPI_GETACCESSTIMEOUT
Definition: winuser.h:1420
#define SM_CYVIRTUALSCREEN
Definition: winuser.h:1050
#define SPI_SETBORDER
Definition: winuser.h:1369
#define SPI_GETBORDER
Definition: winuser.h:1368
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define SPI_SETDESKWALLPAPER
Definition: winuser.h:1380
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4417
#define SPI_SETFASTTASKSWITCH
Definition: winuser.h:1396
#define SPI_SETBEEP
Definition: winuser.h:1365
#define SPI_SETACCESSTIMEOUT
Definition: winuser.h:1421
struct tagSTICKYKEYS STICKYKEYS
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1391
#define SKF_AUDIBLEFEEDBACK
Definition: winuser.h:2209
BOOL WINAPI SetProcessWindowStation(_In_ HWINSTA)
#define SPI_GETMOUSE
Definition: winuser.h:1366
#define SM_CXVIRTUALSCREEN
Definition: winuser.h:1049
#define SPI_SETKEYBOARDSPEED
Definition: winuser.h:1371
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1599
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
struct tagMINIMIZEDMETRICS MINIMIZEDMETRICS
#define SM_CXBORDER
Definition: winuser.h:975
#define SPI_GETKEYBOARDSPEED
Definition: winuser.h:1370
#define SPI_GETSTICKYKEYS
Definition: winuser.h:1418
#define SPI_SETMOUSEBUTTONSWAP
Definition: winuser.h:1393
BOOL WINAPI SystemParametersInfoA(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
struct tagACCESSTIMEOUT ACCESSTIMEOUT
#define SPI_ICONHORIZONTALSPACING
Definition: winuser.h:1373
#define SM_SWAPBUTTON
Definition: winuser.h:995
#define SPI_GETBEEP
Definition: winuser.h:1364
#define SPI_SETMOUSE
Definition: winuser.h:1367
#define CreateWindowStation
Definition: winuser.h:5867
BOOL WINAPI DestroyWindow(_In_ HWND)
#define SPI_SETSCREENSAVETIMEOUT
Definition: winuser.h:1375
int WINAPI GetSystemMetrics(_In_ int)
#define SPI_GETSCREENSAVETIMEOUT
Definition: winuser.h:1374
__wchar_t WCHAR
Definition: xmlstorage.h:180