ReactOS  0.4.12-dev-918-g6c6e7b8
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 
12 static 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";
19 static const WCHAR* VAL_SWAP = L"SwapMouseButtons";
20 
21 static 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";
29 static const WCHAR* VAL_PREFMASK = L"UserPreferencesMask";
30 
31 enum
32 {
41  UPM_RESERVED = 0x100,
42  UPM_MENUFADE = 0x200,
45  UPM_TOOLTIPFADE = 0x1000,
46  UPM_CURSORSHADOW = 0x2000,
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 
57 static 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 
63 static const WCHAR* KEY_SOUND = L"Control Panel\\Sound";
64 static 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 
75 LONG
76 QueryUserRegValueW(PCWSTR pszSubKey, PCWSTR pszValueName, PVOID pData, LPDWORD cbSize, LPDWORD pType)
77 {
78  HKEY hKey;
79  LONG ret;
80 
81  RegOpenKeyExW(HKEY_CURRENT_USER, pszSubKey, 0, KEY_QUERY_VALUE, &hKey);
82  ret = RegQueryValueExW(hKey, pszValueName, NULL, pType, (LPBYTE)pData, cbSize);
83  RegCloseKey(hKey);
84  return ret;
85 }
86 
87 
88 HWND
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",
108  WS_VISIBLE,
109  0,
110  0,
111  50,
112  30,
113  NULL,
114  NULL,
115  hinst,
116  0);
117 }
118 
119 void
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 */
133  TEST(NtUserSystemParametersInfo(7, 0, &data, 0) == FALSE);
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)0x80000000, 0) == FALSE);
318  for(i = 0; i < 1000; i++) data[i] = 0xdeadbeef;
319 
320  /* test wrong bools */
321 }
322 
323 void
325 {
326  HWINSTA hwinsta, hwinstaOld;
327  INT ai[20];
328  BOOL bRet;
329 // INT i;
330 
331  hwinstaOld = GetProcessWindowStation();
332  hwinsta = CreateWindowStation(NULL, 0, READ_CONTROL, NULL);
333  SetProcessWindowStation(hwinsta);
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);
345  TEST(SystemParametersInfoA(SPI_GETBORDER, 0, ai, 0) == 0);
347  TEST(SystemParametersInfoA(SPI_SETBORDER, 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 
370 void
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 
394 void
395 Test_MetricKey(PCWSTR pwszVal, INT iVal)
396 {
397  WCHAR szReg[10];
398  DWORD cbSize;
399 
400  cbSize = sizeof(szReg);
401  TESTX(QueryUserRegValueW(KEY_METRIC, pwszVal, &szReg, &cbSize, NULL) == ERROR_SUCCESS, "Value=%S\n", pwszVal);
402  TESTX(_wcsicmp(szReg, L"1") == 0, "Value=%S\n", pwszVal);
403 
404 }
405 
406 void
407 Test_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);
423  TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPref, &cbSize, NULL) == ERROR_SUCCESS);
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);
432  TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPref, &cbSize, NULL) == ERROR_SUCCESS);
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);
441  TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPref, &cbSize, NULL) == ERROR_SUCCESS);
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);
450  TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPref, &cbSize, NULL) == ERROR_SUCCESS);
451  TEST((dwUserPref & dwPrefMask) == dwPrefMask);
452  TEST((dwUserPref & (~dwPrefMask)) == (dwUserPrefOrg & (~dwPrefMask)));
453 
454  /* Restore original value */
456 
457 
458 }
459 
460 
461 /******************************************************************************/
462 
463 void
465 {
466  BOOL bOrig, bTemp = 0;
467  WCHAR szReg[10];
468  DWORD cbSize;
469 
470  /* Get original value */
472 
473  /* Value 0 */
476  TEST(bTemp == 0);
477  cbSize = sizeof(szReg);
479  TEST(_wcsicmp(szReg, L"No") == 0);
480 
481  /* Value 1 */
484  TEST(bTemp == 1);
485  cbSize = sizeof(szReg);
487  TEST(_wcsicmp(szReg, L"Yes") == 0);
488 
489  /* Value 2 */
492  TEST(bTemp == 1);
493  cbSize = sizeof(szReg);
495  TEST(_wcsicmp(szReg, L"Yes") == 0);
496 
497  /* Restore original value */
499 }
500 
501 void
503 {
504  INT aiOrig[3], aiTemp[3];
505 
506  /* Get original value */
508 
509  /* Test uiParam value */
510  TEST(NtUserSystemParametersInfo(SPI_GETMOUSE, 0, aiTemp, 0) == 1);
511  TEST(NtUserSystemParametersInfo(SPI_GETMOUSE, 1, aiTemp, 0) == 1);
512  TEST(NtUserSystemParametersInfo(SPI_GETMOUSE, -1, aiTemp, 0) == 1);
513  TEST(NtUserSystemParametersInfo(SPI_GETMOUSE, 0xdeadbeef, aiTemp, 0) == 1);
514 
515  /* Set modified values */
516  aiTemp[0] = aiOrig[0] + 1;
517  aiTemp[1] = aiOrig[1] - 1;
518  aiTemp[2] = aiOrig[2] + 2;
520  aiTemp[0] = aiTemp[1] = aiTemp[2] = 0;
521 
522  /* Get new values */
524 
525  /* Test modified values */
526  TEST(aiTemp[0] == aiOrig[0] + 1);
527  TEST(aiTemp[1] == aiOrig[1] - 1);
528  TEST(aiTemp[2] == aiOrig[2] + 2);
529 
530  // FIXME: Test registry values
531 
532  /* Restore original value */
534 }
535 
536 void
538 {
539  INT iOrig, iTemp = 0;
540 
541  /* Get original value */
543 
544  /* Value 0 */
547  TEST(iTemp == 1);
549 
550  /* Value 1 */
553  TEST(iTemp == 1);
554 // Test_MetricKey(pti, VAL_BORDER, 1);
555 
556  /* Value 2 */
559  TEST(iTemp == 2);
561 
562  /* Restore original value */
564 
565 }
566 
567 // Test_SPI_SETKEYBOARDSPEED();
568 // Test_SPI_LANGDRIVER();
569 // Test_SPI_ICONHORIZONTALSPACING();
570 // Test_SPI_SETSCREENSAVETIMEOUT();
571 // Test_SPI_SETSCREENSAVEACTIVE();
572 // Test_SPI_SETGRIDGRANULARITY();
573 
574 void
576 {
577  UNICODE_STRING ustrOld, ustrNew;
578  WCHAR szOld[MAX_PATH];
579  WCHAR szNew[MAX_PATH];
580 
581  /* Get old Wallpaper */
583  RtlInitUnicodeString(&ustrOld, szOld);
584 
585  /* Set no Wallpaper */
588  TEST(szNew[0] == 0);
589 
590  /* Set no Wallpaper 2 */
591  RtlInitUnicodeString(&ustrNew, L"");
594  TEST(szNew[0] == 0);
595 
596  /* Reset Wallpaper */
599  TEST(wcscmp(szNew, szOld) == 0);
600 
601  /* Set new Wallpaper */
602  RtlInitUnicodeString(&ustrNew, L"test.bmp");
605  TEST(wcscmp(szNew, L"test.bmp") == 0);
606 
607  /* Get Wallpaper, too small buffer */
608  szNew[0] = 0; szNew[1] = 0; szNew[2] = 0;
610  TEST(szNew[0] != 0);
611  TEST(szNew[1] != 0);
612  TEST(szNew[2] != 0);
613 
614  /* Set invalid Wallpaper */
615  SetLastError(0xdeadbeef);
616  RtlInitUnicodeString(&ustrNew, L"*#!!-&");
620  TEST(wcscmp(szNew, L"*#!!-&") == 0);
621 
622  /* Restore old Wallpaper */
624 
625 }
626 
627 // Test_SPI_SETDESKPATTERN();
628 // Test_SPI_SETKEYBOARDDELAY();
629 // Test_SPI_ICONVERTICALSPACING();
630 // Test_SPI_SETICONTITLEWRAP();
631 // Test_SPI_SETMENUDROPALIGNMENT();
632 // Test_SPI_SETDOUBLECLKWIDTH();
633 // Test_SPI_SETDOUBLECLKHEIGHT();
634 // Test_SPI_SETDOUBLECLICKTIME();
635 
636 void
638 {
639  BOOL bOrig, bTemp = 0;
640  WCHAR szReg[10];
641  DWORD cbSize;
642 
643  /* Get original value */
645 
646  /* Value 0 */
649  TEST(bTemp == 0);
650  cbSize = sizeof(szReg);
652  TEST(_wcsicmp(szReg, L"0") == 0);
653 
654  /* Value 1 */
657  TEST(bTemp == 1);
658  cbSize = sizeof(szReg);
660  TEST(_wcsicmp(szReg, L"1") == 0);
661 
662  /* Value 2 */
665  TEST(bTemp == 1);
666  cbSize = sizeof(szReg);
668  TEST(_wcsicmp(szReg, L"2") == 0);
669 
670  /* Value -1 */
673  TEST(bTemp == 1);
674  cbSize = sizeof(szReg);
676  TEST(_wcsicmp(szReg, L"-1") == 0);
677 
678  /* Restore original value */
680 
681 
682 }
683 
684 void
686 {
687  LOGFONTW lfOrig;
688  struct
689  {
690  LOGFONTW lf;
691  DWORD dwRedzone;
692  } buf;
693 
694  /* Get original value */
695  ASSERT(NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lfOrig), &lfOrig, 0));
696 
697  /* Test uiParam == 0 */
698  memset(&buf, 0, sizeof(buf));
699  buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
700  buf.dwRedzone = 0xdeadbeef;
702  TEST(buf.lf.lfHeight != 0);
703  TEST(buf.lf.lfWeight != 0);
704  TEST(buf.lf.lfFaceName[0] != 0);
705  TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
706  TEST(buf.dwRedzone == 0xdeadbeef);
707 
708  /* Test uiParam < sizeof(LOGFONTW) */
709  memset(&buf, 0, sizeof(buf));
710  buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
711  buf.dwRedzone = 0xdeadbeef;
713  TEST(buf.lf.lfHeight != 0);
714  TEST(buf.lf.lfWeight != 0);
715  TEST(buf.lf.lfFaceName[0] != 0);
716  TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
717  TEST(buf.dwRedzone == 0xdeadbeef);
718 
719  /* Test uiParam < 0 */
721 }
722 
723 void
725 {
726  char buf[10];
729 
730 
731 }
732 
733 void
735 {
736 
737 }
738 
739 void
741 {
742  NONCLIENTMETRICSW metrics;
743  NONCLIENTMETRICSW origMetrics;
744 
745  metrics.cbSize = sizeof(NONCLIENTMETRICSW);
746  TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &metrics, 0) == 1);
747  TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), (PVOID)0xdeadbeef, 0) == 0);
748 
749  origMetrics = metrics;
750 
751  metrics.cbSize = sizeof(NONCLIENTMETRICSW) + 10;
752  TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
753  TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
754  ok(metrics.cbSize == sizeof(NONCLIENTMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(NONCLIENTMETRICSW), (ULONG)metrics.cbSize);
755 
756  TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
757 }
758 
759 void
761 {
763  MINIMIZEDMETRICS origMetrics;
764 
765  metrics.cbSize = sizeof(MINIMIZEDMETRICS);
766  TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)&metrics, 0) == 1);
767  TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)0xdeadbeef, 0) == 0);
768 
769  origMetrics = metrics;
770 
771  metrics.cbSize = sizeof(MINIMIZEDMETRICS) + 10;
772  TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
773  TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
774  ok(metrics.cbSize == sizeof(MINIMIZEDMETRICS), "Expected size: %lu, got %lu\n", (ULONG)sizeof(MINIMIZEDMETRICS), (ULONG)metrics.cbSize);
775 
776  TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
777 }
778 
779 void
781 {
782  ICONMETRICSW metrics;
783  ICONMETRICSW origMetrics;
784 
785  metrics.cbSize = sizeof(ICONMETRICSW);
786  TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)&metrics, 0) == 1);
787  TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)0xdeadbeef, 0) == 0);
788 
789  origMetrics = metrics;
790 
791  metrics.cbSize = sizeof(ICONMETRICSW) + 10;
792  TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
793  TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
794  ok(metrics.cbSize == sizeof(ICONMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(ICONMETRICSW), (ULONG)metrics.cbSize);
795 
796  TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
797 }
798 
799 void
801 {
802  RECT rcOrig, rc;
803 
804  /* Get the original value */
805  ASSERT(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, &rcOrig, 0) == 1);
806 
807  /* Change value */
808  rc = rcOrig;
809  rc.left += 1;
810  rc.top += 2;
811  rc.right -= 3;
812  rc.bottom -= 2;
813  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 1, &rc, 0) == 1);
814  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
815  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, sizeof(RECT), &rc, 0) == 1);
816 
817  TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 1, &rc, 0) == 1);
818  TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, -1, &rc, 0) == 1);
819  TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0xdeadbeef, &rc, 0) == 1);
820  TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)0xdeadbeef, 0) == 0);
821 
822  /* Test values */
823  rc = rcOrig; rc.left = -1;
824  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
825  rc = rcOrig; rc.top = -1;
826  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
827  rc = rcOrig; rc.top = 10; rc.bottom = 11;
828  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
829  rc = rcOrig; rc.top = 10; rc.bottom = 10;
830  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
831  rc = rcOrig; rc.top = 10; rc.bottom = 9;
832  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
833  rc = rcOrig; rc.left = 10; rc.right = 11;
834  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
835  rc = rcOrig; rc.left = 10; rc.right = 10;
836  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
837  rc = rcOrig; rc.left = 10; rc.right = 9;
838  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
839  rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN);
840  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
841  rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN)+1;
842  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
843  rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN);
844  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
845  rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN)+1;
846  TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
847 
848  /* Restore original value */
849  ASSERT(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rcOrig, 0) == 1);
850 
851 
852 }
853 
854 void
856 {
857 
858 }
859 
860 void
862 {
863 
864 }
865 
866 void
868 {
869 
870 }
871 
872 void
874 {
875 
876 }
877 
878 void
880 {
881 
882 }
883 
884 void
886 {
887  STICKYKEYS skOrig, sk;
888 
889  /* Get original values */
890  skOrig.cbSize = sizeof(STICKYKEYS);
892 
893  sk.cbSize = sizeof(STICKYKEYS)+1;
895 
896  sk.cbSize = sizeof(STICKYKEYS)-1;
898 
899  sk.cbSize = sizeof(STICKYKEYS);
905 
906  sk = skOrig;
907  sk.dwFlags = (skOrig.dwFlags ^ 1);
911 
912  sk = skOrig;
914  TEST(sk.dwFlags == (skOrig.dwFlags ^ 1));
915 
916  /* Restore original values */
917  skOrig.cbSize = sizeof(STICKYKEYS);
919 
920 }
921 
922 void
924 {
925  ACCESSTIMEOUT atoOrig, atoTmp;
926 
927  /* Get original values */
928  atoOrig.cbSize = sizeof(ACCESSTIMEOUT);
930 
931  atoTmp.cbSize = sizeof(ACCESSTIMEOUT) - 1;
933  atoTmp.cbSize = sizeof(ACCESSTIMEOUT) + 1;
935  atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
937  atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
939  atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
941  atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
943  atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
945  atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
947 
948  /* Restore original values */
949  ASSERT(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0) == 1);
950 }
951 
952 void
954 {
955 
956 }
957 
958 void
960 {
961 
962 }
963 
964 void
966 {
967 
968 }
969 
970 void
972 {
973 
974 }
975 
976 // Test_SPI_SETSCREENREADER();
978 // Test_SPI_SETFONTSMOOTHING();
979 // Test_SPI_SETDRAGWIDTH();
980 // Test_SPI_SETDRAGHEIGHT();
981 // Test_SPI_SETHANDHELD();
982 // Test_SPI_SETLOWPOWERTIMEOUT();
983 // Test_SPI_SETPOWEROFFTIMEOUT();
984 // Test_SPI_SETLOWPOWERACTIVE();
985 // Test_SPI_SETPOWEROFFACTIVE();
986 // Test_SPI_SETCURSORS();
987 // Test_SPI_SETICONS();
988 // Test_SPI_SETDEFAULTINPUTLANG();
989 // Test_SPI_SETLANGTOGGLE();
990 // Test_SPI_GETWINDOWSEXTENSION();
991 // Test_SPI_SETMOUSETRAILS();
992 // Test_SPI_SETSNAPTODEFBUTTON();
993 // Test_SPI_GETSCREENSAVERRUNNING();
994 // Test_SPI_SETMOUSEHOVERWIDTH();
995 // Test_SPI_SETMOUSEHOVERHEIGHT();
996 // Test_SPI_SETMOUSEHOVERTIME();
997 // Test_SPI_SETWHEELSCROLLLINES();
998 // Test_SPI_SETMENUSHOWDELAY();
999 // Test_SPI_SETWHEELSCROLLCHARS();
1000 // Test_SPI_SETSHOWIMEUI();
1001 // Test_SPI_SETMOUSESPEED();
1002 // Test_SPI_GETSCREENSAVERRUNNING();
1003 // Test_SPI_SETAUDIODESCRIPTION();
1004 // Test_SPI_SETSCREENSAVESECURE();
1005 // Test_SPI_SETACTIVEWINDOWTRACKING();
1006 
1007 void
1009 {
1010  BOOL bOrig, bTemp = 0;
1011  DWORD dwUserPrefMask;
1012  DWORD cbSize;
1013 
1014  /* Get original values */
1015  NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bOrig, 0);
1016 
1017  /* Value 0 */
1018  NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, NULL, SPIF_UPDATEINIFILE);
1019  NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1020  TEST(bTemp == 0);
1021  cbSize = sizeof(dwUserPrefMask);
1022  TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1023  TEST((dwUserPrefMask & UPM_MENUANIMATION) == 0);
1024 
1025  /* Value 1 */
1026  NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)1, SPIF_UPDATEINIFILE);
1027  NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1028  TEST(bTemp == 1);
1029  cbSize = sizeof(dwUserPrefMask);
1030  TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1031  TEST((dwUserPrefMask & UPM_MENUANIMATION) != 0);
1032 
1033 
1034  /* Restore original values */
1035  NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)bOrig, SPIF_UPDATEINIFILE);
1036 }
1037 
1038 // Test_SPI_SETCOMBOBOXANIMATION();
1039 // Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1040 // Test_SPI_SETGRADIENTCAPTIONS();
1041 
1042 void
1044 {
1045  Test_UserPref(SPI_GETKEYBOARDCUES, SPI_SETKEYBOARDCUES, UPM_KEYBOARDCUES);
1046 }
1047 
1048 // Test_SPI_SETACTIVEWNDTRKZORDER();
1049 // Test_SPI_SETHOTTRACKING();
1050 // Test_SPI_SETMENUFADE();
1051 // Test_SPI_SETSELECTIONFADE();
1052 // Test_SPI_SETTOOLTIPANIMATION();
1053 // Test_SPI_SETTOOLTIPFADE();
1054 // Test_SPI_SETCURSORSHADOW();
1055 // Test_SPI_SETMOUSESONAR();
1056 
1057 void
1059 {
1060  Test_UserPref(SPI_GETMOUSECLICKLOCK, SPI_SETMOUSECLICKLOCK, UPM_CLICKLOCK);
1061 }
1062 
1063 // Test_SPI_SETMOUSEVANISH();
1064 // Test_SPI_SETFLATMENU();
1065 // Test_SPI_SETDROPSHADOW();
1066 // Test_SPI_SETBLOCKSENDINPUTRESETS();
1067 // Test_SPI_GETSETUIEFFECTS();
1068 // Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1069 // Test_SPI_SETCLIENTAREAANIMATION();
1070 // Test_SPI_SETCLEARTYPE();
1071 // Test_SPI_SETSPEECHRECOGNITION();
1072 // Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1073 // Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1074 // Test_SPI_SETFOREGROUNDFLASHCOUNT();
1075 // Test_SPI_SETCARETWIDTH();
1076 // Test_SPI_SETMOUSECLICKLOCKTIME();
1077 // Test_SPI_SETFONTSMOOTHINGTYPE();
1078 // Test_SPI_SETFONTSMOOTHINGCONTRAST();
1079 // Test_SPI_SETFOCUSBORDERWIDTH();
1080 // Test_SPI_SETFOCUSBORDERHEIGHT();
1081 // Test_SPI_SETFONTSMOOTHINGORIENTATION();
1082 
1083 
1085 {
1086  HWND hWnd;
1087 
1088  hWnd = CreateTestWindow();
1089  ASSERT(hWnd);
1090 
1094 
1095  Test_SPI_SETBEEP();
1098 // Test_SPI_SETKEYBOARDSPEED();
1099 // Test_SPI_LANGDRIVER();
1100 // Test_SPI_ICONHORIZONTALSPACING();
1101 // Test_SPI_SETSCREENSAVETIMEOUT();
1102 // Test_SPI_SETSCREENSAVEACTIVE();
1103 // Test_SPI_SETGRIDGRANULARITY();
1105 // Test_SPI_SETDESKPATTERN();
1106 // Test_SPI_SETKEYBOARDDELAY();
1107 // Test_SPI_ICONVERTICALSPACING();
1108 // Test_SPI_SETICONTITLEWRAP();
1109 // Test_SPI_SETMENUDROPALIGNMENT();
1110 // Test_SPI_SETDOUBLECLKWIDTH();
1111 // Test_SPI_SETDOUBLECLKHEIGHT();
1112 // Test_SPI_SETDOUBLECLICKTIME();
1132 // Test_SPI_SETSCREENREADER();
1134 // Test_SPI_SETFONTSMOOTHING();
1135 // Test_SPI_SETDRAGWIDTH();
1136 // Test_SPI_SETDRAGHEIGHT();
1137 // Test_SPI_SETHANDHELD();
1138 // Test_SPI_SETLOWPOWERTIMEOUT();
1139 // Test_SPI_SETPOWEROFFTIMEOUT();
1140 // Test_SPI_SETLOWPOWERACTIVE();
1141 // Test_SPI_SETPOWEROFFACTIVE();
1142 // Test_SPI_SETCURSORS();
1143 // Test_SPI_SETICONS();
1144 // Test_SPI_SETDEFAULTINPUTLANG();
1145 // Test_SPI_SETLANGTOGGLE();
1146 // Test_SPI_GETWINDOWSEXTENSION();
1147 // Test_SPI_SETMOUSETRAILS();
1148 // Test_SPI_SETSNAPTODEFBUTTON();
1149 // Test_SPI_GETSCREENSAVERRUNNING();
1150 // Test_SPI_SETMOUSEHOVERWIDTH();
1151 // Test_SPI_SETMOUSEHOVERHEIGHT();
1152 // Test_SPI_SETMOUSEHOVERTIME();
1153 // Test_SPI_SETWHEELSCROLLLINES();
1154 // Test_SPI_SETMENUSHOWDELAY();
1155 // Test_SPI_SETWHEELSCROLLCHARS();
1156 // Test_SPI_SETSHOWIMEUI();
1157 // Test_SPI_SETMOUSESPEED();
1158 // Test_SPI_GETSCREENSAVERRUNNING();
1159 // Test_SPI_SETAUDIODESCRIPTION();
1160 // Test_SPI_SETSCREENSAVESECURE();
1161 // Test_SPI_SETACTIVEWINDOWTRACKING();
1163 // Test_SPI_SETCOMBOBOXANIMATION();
1164 // Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1165 // Test_SPI_SETGRADIENTCAPTIONS();
1167 // Test_SPI_SETACTIVEWNDTRKZORDER();
1168 // Test_SPI_SETHOTTRACKING();
1169 // Test_SPI_SETMENUFADE();
1170 // Test_SPI_SETSELECTIONFADE();
1171 // Test_SPI_SETTOOLTIPANIMATION();
1172 // Test_SPI_SETTOOLTIPFADE();
1173 // Test_SPI_SETCURSORSHADOW();
1174 // Test_SPI_SETMOUSESONAR();
1176 // Test_SPI_SETMOUSEVANISH();
1177 // Test_SPI_SETFLATMENU();
1178 // Test_SPI_SETDROPSHADOW();
1179 // Test_SPI_SETBLOCKSENDINPUTRESETS();
1180 // Test_SPI_GETSETUIEFFECTS();
1181 // Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1182 // Test_SPI_SETCLIENTAREAANIMATION();
1183 // Test_SPI_SETCLEARTYPE();
1184 // Test_SPI_SETSPEECHRECOGNITION();
1185 // Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1186 // Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1187 // Test_SPI_SETFOREGROUNDFLASHCOUNT();
1188 // Test_SPI_SETCARETWIDTH();
1189 // Test_SPI_SETMOUSECLICKLOCKTIME();
1190 // Test_SPI_SETFONTSMOOTHINGTYPE();
1191 // Test_SPI_SETFONTSMOOTHINGCONTRAST();
1192 // Test_SPI_SETFOCUSBORDERWIDTH();
1193 // Test_SPI_SETFOCUSBORDERHEIGHT();
1194 // Test_SPI_SETFONTSMOOTHINGORIENTATION();
1195 
1197 }
void Test_SPI_SETDRAGFULLWINDOWS(void)
#define ERROR_INVALID_PARAMETER
Definition: compat.h:91
static const WCHAR * VAL_SWAP
static const WCHAR * VAL_BEEP
#define SPI_GETSTICKYKEYS
Definition: winuser.h:1389
static const WCHAR * KEY_DESKTOP
const uint16_t * PCWSTR
Definition: typedefs.h:55
#define TRUE
Definition: types.h:120
struct tagMINIMIZEDMETRICS MINIMIZEDMETRICS
#define LF_FACESIZE
Definition: dimm.idl:39
#define SPI_SETMOUSEBUTTONSWAP
Definition: winuser.h:1364
#define ERROR_SUCCESS
Definition: deptool.c:10
#define SPI_GETKEYBOARDSPEED
Definition: winuser.h:1341
void Test_SPI_SETTOGGLEKEYS(void)
void Test_SPI_SETKEYBOARDCUES(void)
#define SM_CXVIRTUALSCREEN
Definition: winuser.h:1028
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
Definition: glext.h:11745
#define SPI_ICONHORIZONTALSPACING
Definition: winuser.h:1344
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define SPI_SETDESKWALLPAPER
Definition: winuser.h:1351
void Test_SPI_SETDESKWALLPAPER(void)
#define CreateWindowStation
Definition: winuser.h:5622
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define SPI_SETACCESSTIMEOUT
Definition: winuser.h:1392
#define SPI_GETSCREENSAVETIMEOUT
Definition: winuser.h:1345
static const WCHAR * VAL_PREFMASK
void Test_SPI_SETMOUSEBUTTONSWAP(void)
HWND hWnd
Definition: settings.c:17
LONG top
Definition: windef.h:292
DWORD iTimeOutMSec
Definition: winuser.h:2884
void Test_NtUserSystemParametersInfo_Winsta(void)
int cbClsExtra
Definition: winuser.h:3118
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define SPI_SETMOUSE
Definition: winuser.h:1338
LPCSTR lpszMenuName
Definition: winuser.h:3124
static const WCHAR * KEY_MOUSE
void Test_SPI_SETKEYBOARDPREF(void)
BOOL WINAPI SetProcessWindowStation(_In_ HWINSTA)
HBRUSH hbrBackground
Definition: winuser.h:3123
LONG left
Definition: windef.h:291
void Test_SPI_SETICONTITLELOGFONT(void)
#define SPI_SETBEEP
Definition: winuser.h:1336
#define ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
Definition: winerror.h:940
LONG right
Definition: windef.h:293
BOOL WINAPI DestroyWindow(_In_ HWND)
void Test_SPI_SETMINIMIZEDMETRICS(void)
int32_t INT
Definition: typedefs.h:56
void Test_SPI_SETSOUNDSENTRY(void)
#define SPI_SETFASTTASKSWITCH
Definition: winuser.h:1367
int cbWndExtra
Definition: winuser.h:3119
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 ERROR_NOACCESS
Definition: winerror.h:578
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
unsigned char * LPBYTE
Definition: typedefs.h:52
#define ERROR_ACCESS_DENIED
Definition: compat.h:87
static const WCHAR * KEY_METRIC
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
enum @1546 USERPREFMASKS
#define TESTX
Definition: win32nt.h:34
void Test_SPI_SETSHOWSOUNDS(void)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4184
HCURSOR hCursor
Definition: winuser.h:3122
void Test_SPI_SETMOUSEKEYS(void)
#define SPI_GETMOUSE
Definition: winuser.h:1337
BOOL WINAPI SystemParametersInfoA(_In_ UINT, _In_ UINT, _Inout_opt_ PVOID, _In_ UINT)
smooth NULL
Definition: ftsmooth.c:416
void Test_SPI_SETICONMETRICS(void)
struct tagSTICKYKEYS STICKYKEYS
Definition: bufpool.h:45
#define SPI_GETACCESSTIMEOUT
Definition: winuser.h:1391
LONG QueryUserRegValueW(PCWSTR pszSubKey, PCWSTR pszValueName, PVOID pData, LPDWORD cbSize, LPDWORD pType)
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define SPI_SETBORDER
Definition: winuser.h:1340
HWND CreateTestWindow()
#define SM_CYVIRTUALSCREEN
Definition: winuser.h:1029
#define ok(value,...)
Definition: CComObject.cpp:34
void Test_SPI_SETWORKAREA(void)
LONG WINAPI RegQueryValueExW(_In_ HKEY hkeyorg, _In_ LPCWSTR name, _In_ LPDWORD reserved, _In_ LPDWORD type, _In_ LPBYTE data, _In_ LPDWORD count)
Definition: reg.c:4134
__wchar_t WCHAR
Definition: xmlstorage.h:180
#define SPI_SETKEYBOARDSPEED
Definition: winuser.h:1342
#define TEST(x)
Definition: precomp.h:20
#define MAX_PATH
Definition: compat.h:26
int WINAPI GetSystemMetrics(_In_ int)
unsigned long DWORD
Definition: ntddk_ex.h:95
#define SetLastError(x)
Definition: compat.h:409
void Test_SPI_SETACCESSTIMEOUT(void)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
#define READ_CONTROL
Definition: nt_native.h:58
ASSERT((InvokeOnSuccess||InvokeOnError||InvokeOnCancel) ?(CompletionRoutine !=NULL) :TRUE)
int ret
void Test_SPI_SETPENWINDOWS(void)
static const WCHAR L[]
Definition: oid.c:1250
DWORD cbSize
Definition: winuser.h:3471
void Test_SPI_SETMENUANIMATION(void)
Test_SPI_SETANIMATION();.
#define SM_CXBORDER
Definition: winuser.h:954
void Test_SPI_SETMOUSE(void)
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
LPCSTR lpszClassName
Definition: winuser.h:3125
#define SPI_GETBORDER
Definition: winuser.h:1339
void Test_SPI_SETSERIALKEYS(void)
UINT style
Definition: winuser.h:3116
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1553
#define GetModuleHandle
Definition: winbase.h:3641
HINSTANCE hInstance
Definition: winuser.h:3120
#define KEY_QUERY_VALUE
Definition: nt_native.h:1016
void Test_SPI_SETSTICKYKEYS(void)
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2122
void Test_NtUserSystemParametersInfo_Params(void)
unsigned int UINT
Definition: ndis.h:50
HWINSTA WINAPI GetProcessWindowStation(void)
Definition: ntwrapper.h:124
#define SPI_SETSTICKYKEYS
Definition: winuser.h:1390
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1362
START_TEST(NtUserSystemParametersInfo)
WNDPROC lpfnWndProc
Definition: winuser.h:3117
DWORD dwFlags
Definition: winuser.h:3472
#define SM_SWAPBUTTON
Definition: winuser.h:974
#define SPI_GETDESKWALLPAPER
Definition: sysparams.c:40
void Test_NtUserSystemParametersInfo_fWinIni(void)
uint32_t * LPDWORD
Definition: typedefs.h:57
void Test_SPI_SETFASTTASKSWITCH(void)
unsigned int ULONG
Definition: retypes.h:1
static const WCHAR * KEY_SOUND
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3381
static HINSTANCE hinst
Definition: edit.c:551
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
LONG bottom
Definition: windef.h:294
void Test_MetricKey(PCWSTR pwszVal, INT iVal)
void Test_SPI_SETBORDER(void)
void Test_UserPref(UINT uiGet, UINT uiSet, DWORD dwPrefMask)
#define SPI_GETBEEP
Definition: winuser.h:1335
UINT32 uint
Definition: types.h:83
void Test_SPI_SETNONCLIENTMETRICS(void)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1827
void Test_SPI_SETHIGHCONTRAST(void)
#define WS_VISIBLE
Definition: pedump.c:620
#define memset(x, y, z)
Definition: compat.h:39
struct tagACCESSTIMEOUT ACCESSTIMEOUT
void Test_SPI_SETBEEP(void)
void Test_SPI_SETMOUSECLICKLOCK(void)
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define SPI_SETSCREENSAVETIMEOUT
Definition: winuser.h:1346
#define printf
Definition: config.h:203
HICON hIcon
Definition: winuser.h:3121
void Test_SPI_SETFILTERKEYS(void)