2 * PROJECT: ReactOS api tests
3 * LICENSE: GPL - See COPYING in the top level directory
4 * PURPOSE: Test for NtUserSystemParametersInfo
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";
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";
33 UPM_ACTIVEWINDOWTRACKING
= 0x01,
34 UPM_MENUANIMATION
= 0x02,
35 UPM_COMBOBOXANIMATION
= 0x04,
36 UPM_LISTBOXSMOOTHSCROLLING
= 0x08,
37 UPM_GRADIENTCAPTIONS
= 0x10,
38 UPM_KEYBOARDCUES
= 0x20,
39 UPM_ACTIVEWNDTRKZORDER
= 0x40,
40 UPM_HOTTRACKING
= 0x80,
43 UPM_SELECTIONFADE
= 0x400,
44 UPM_TOOLTIPANIMATION
= 0x800,
45 UPM_TOOLTIPFADE
= 0x1000,
46 UPM_CURSORSHADOW
= 0x2000,
47 UPM_CLICKLOCK
= 0x8000,
49 UPM_UIEFFECTS
= 0x80000000,
50 UPM_DEFAULT
= 0x80003E9E
54 //static const WCHAR* KEY_MDALIGN = L"Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows";
55 //static const WCHAR* VAL_MDALIGN = L"MenuDropAlignment";
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";
63 static const WCHAR
* KEY_SOUND
= L
"Control Panel\\Sound";
64 static const WCHAR
* VAL_BEEP
= L
"Beep";
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";
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";
76 QueryUserRegValueW(PCWSTR pszSubKey
, PCWSTR pszValueName
, PVOID pData
, LPDWORD cbSize
, LPDWORD pType
)
81 RegOpenKeyExW(HKEY_CURRENT_USER
, pszSubKey
, 0, KEY_QUERY_VALUE
, &hKey
);
82 ret
= RegQueryValueExW(hKey
, pszValueName
, NULL
, pType
, (LPBYTE
)pData
, cbSize
);
91 HINSTANCE hinst
= GetModuleHandle(NULL
);
95 wc
.lpfnWndProc
= DefWindowProcA
;
101 wc
.hbrBackground
= NULL
;
102 wc
.lpszMenuName
= NULL
;
103 wc
.lpszClassName
= "testclass";
106 return CreateWindowA("testclass",
120 Test_NtUserSystemParametersInfo_Params(void)
127 SetLastError(ERROR_SUCCESS
);
128 TEST(NtUserSystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT
, 0, &uint
, 0) == TRUE
);
129 TEST(GetLastError() == ERROR_SUCCESS
);
131 /* Test invalid SPI code */
132 SetLastError(ERROR_SUCCESS
);
133 TEST(NtUserSystemParametersInfo(7, 0, &data
, 0) == FALSE
);
134 TEST(GetLastError() == ERROR_INVALID_PARAMETER
);
136 /* Test wrong cbSize member */
138 SetLastError(0xdeadbeef);
139 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 0, &ato
, 0) == FALSE
);
140 TEST(GetLastError() == 0xdeadbeef);
142 /* Test undocumented, but valid SPI codes */
143 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
144 SetLastError(ERROR_SUCCESS
);
145 TEST(NtUserSystemParametersInfo(0x1010, 0, &data
, 0) == TRUE
);
146 TEST(GetLastError() == ERROR_SUCCESS
);
148 TEST(data
[1] == 0xdeadbeef);
150 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
151 SetLastError(ERROR_SUCCESS
);
152 TEST(NtUserSystemParametersInfo(0x1011, 0, &data
, 0) == TRUE
);
153 TEST(GetLastError() == ERROR_SUCCESS
);
154 TEST(data
[0] == 0xbeefdead);
155 TEST(data
[1] == 0xbeefdead);
157 NtUserSystemParametersInfo(0x1010, 0, &data
, 0);
160 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
161 SetLastError(ERROR_SUCCESS
);
162 TEST(NtUserSystemParametersInfo(0x1028, 0, &data
, 0) == TRUE
);
163 TEST(GetLastError() == ERROR_SUCCESS
);
164 TEST(data
[0] != 0xdeadbeef);
165 TEST(data
[1] == 0xdeadbeef);
167 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
168 SetLastError(ERROR_SUCCESS
);
169 TEST(NtUserSystemParametersInfo(0x1029, 0, &data
, 0) == TRUE
);
170 TEST(GetLastError() == ERROR_SUCCESS
);
171 TEST(data
[0] == 0xbeefdead);
172 TEST(data
[1] == 0xbeefdead);
174 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
175 SetLastError(ERROR_SUCCESS
);
176 TEST(NtUserSystemParametersInfo(0x102A, 0, &data
, 0) == TRUE
);
177 TEST(GetLastError() == ERROR_SUCCESS
);
178 TEST(data
[0] != 0xdeadbeef);
179 TEST(data
[1] == 0xdeadbeef);
181 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
182 SetLastError(ERROR_SUCCESS
);
183 TEST(NtUserSystemParametersInfo(4139, 0, &data
, 0) == TRUE
);
184 TEST(GetLastError() == ERROR_SUCCESS
);
185 TEST(data
[0] == 0xbeefdead);
186 TEST(data
[1] == 0xbeefdead);
188 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
189 SetLastError(ERROR_SUCCESS
);
190 TEST(NtUserSystemParametersInfo(4140, 0, &data
, 0) == TRUE
);
191 TEST(GetLastError() == ERROR_SUCCESS
);
192 TEST(data
[0] != 0xdeadbeef);
193 TEST(data
[1] == 0xdeadbeef);
195 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
196 SetLastError(ERROR_SUCCESS
);
197 TEST(NtUserSystemParametersInfo(4141, 0, &data
, 0) == TRUE
);
198 TEST(GetLastError() == ERROR_SUCCESS
);
199 TEST(data
[0] == 0xbeefdead);
200 TEST(data
[1] == 0xbeefdead);
202 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
203 SetLastError(ERROR_SUCCESS
);
204 TEST(NtUserSystemParametersInfo(4142, 0, &data
, 0) == TRUE
);
205 TEST(GetLastError() == ERROR_SUCCESS
);
206 TEST(data
[0] != 0xdeadbeef);
207 TEST(data
[1] == 0xdeadbeef);
209 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
210 SetLastError(ERROR_SUCCESS
);
211 TEST(NtUserSystemParametersInfo(4143, 0, &data
, 0) == TRUE
);
212 TEST(GetLastError() == ERROR_SUCCESS
);
213 TEST(data
[0] == 0xbeefdead);
214 TEST(data
[1] == 0xbeefdead);
216 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
217 SetLastError(ERROR_SUCCESS
);
218 TEST(NtUserSystemParametersInfo(4144, 0, &data
, 0) == TRUE
);
219 TEST(GetLastError() == ERROR_SUCCESS
);
220 TEST(data
[0] != 0xdeadbeef);
221 TEST(data
[1] == 0xdeadbeef);
223 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
224 SetLastError(ERROR_SUCCESS
);
225 TEST(NtUserSystemParametersInfo(4145, 0, &data
, 0) == TRUE
);
226 TEST(GetLastError() == ERROR_SUCCESS
);
227 TEST(data
[0] == 0xbeefdead);
228 TEST(data
[1] == 0xbeefdead);
230 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
231 SetLastError(ERROR_SUCCESS
);
232 TEST(NtUserSystemParametersInfo(4146, 0, &data
, 0) == TRUE
);
233 TEST(GetLastError() == ERROR_SUCCESS
);
234 TEST(data
[0] != 0xdeadbeef);
235 TEST(data
[1] == 0xdeadbeef);
237 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
238 SetLastError(ERROR_SUCCESS
);
239 TEST(NtUserSystemParametersInfo(4147, 0, &data
, 0) == TRUE
);
240 TEST(GetLastError() == ERROR_SUCCESS
);
241 TEST(data
[0] == 0xbeefdead);
242 TEST(data
[1] == 0xbeefdead);
244 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
245 SetLastError(ERROR_SUCCESS
);
246 TEST(NtUserSystemParametersInfo(4148, 0, &data
, 0) == TRUE
);
247 TEST(GetLastError() == ERROR_SUCCESS
);
248 TEST(data
[0] != 0xdeadbeef);
249 TEST(data
[1] == 0xdeadbeef);
251 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
252 SetLastError(ERROR_SUCCESS
);
253 TEST(NtUserSystemParametersInfo(4149, 0, &data
, 0) == TRUE
);
254 TEST(GetLastError() == ERROR_SUCCESS
);
255 TEST(data
[0] == 0xbeefdead);
256 TEST(data
[1] == 0xbeefdead);
258 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
259 SetLastError(ERROR_SUCCESS
);
260 TEST(NtUserSystemParametersInfo(4150, 0, &data
, 0) == TRUE
);
261 TEST(GetLastError() == ERROR_SUCCESS
);
262 TEST(data
[0] != 0xdeadbeef);
263 TEST(data
[1] == 0xdeadbeef);
265 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
266 SetLastError(ERROR_SUCCESS
);
267 TEST(NtUserSystemParametersInfo(4151, 0, &data
, 0) == TRUE
);
268 TEST(GetLastError() == ERROR_SUCCESS
);
269 TEST(data
[0] == 0xbeefdead);
270 TEST(data
[1] == 0xbeefdead);
272 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
273 SetLastError(ERROR_SUCCESS
);
274 TEST(NtUserSystemParametersInfo(4152, 0, &data
, 0) == TRUE
);
275 TEST(GetLastError() == ERROR_SUCCESS
);
276 TEST(data
[0] != 0xdeadbeef);
277 TEST(data
[1] == 0xdeadbeef);
279 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
280 SetLastError(ERROR_SUCCESS
);
281 TEST(NtUserSystemParametersInfo(4153, 0, &data
, 0) == TRUE
);
282 TEST(GetLastError() == ERROR_SUCCESS
);
283 TEST(data
[0] == 0xbeefdead);
284 TEST(data
[1] == 0xbeefdead);
286 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
287 SetLastError(ERROR_SUCCESS
);
288 TEST(NtUserSystemParametersInfo(4154, 0, &data
, 0) == TRUE
);
289 TEST(GetLastError() == ERROR_SUCCESS
);
290 TEST(data
[0] != 0xdeadbeef);
291 TEST(data
[1] == 0xdeadbeef);
293 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
294 SetLastError(ERROR_SUCCESS
);
295 TEST(NtUserSystemParametersInfo(4155, 0, &data
, 0) == TRUE
);
296 TEST(GetLastError() == ERROR_SUCCESS
);
297 TEST(data
[0] == 0xbeefdead);
298 TEST(data
[1] == 0xbeefdead);
300 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
301 SetLastError(ERROR_SUCCESS
);
302 TEST(NtUserSystemParametersInfo(4156, 0, &data
, 0) == TRUE
);
303 TEST(GetLastError() == ERROR_SUCCESS
);
304 TEST(data
[0] != 0xdeadbeef);
305 TEST(data
[1] == 0xdeadbeef);
307 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xbeefdead;
308 SetLastError(ERROR_SUCCESS
);
309 TEST(NtUserSystemParametersInfo(4157, 0, &data
, 0) == TRUE
);
310 TEST(GetLastError() == ERROR_SUCCESS
);
311 TEST(data
[0] == 0xbeefdead);
312 TEST(data
[1] == 0xbeefdead);
314 /* Test invalid pointer */
315 SetLastError(ERROR_SUCCESS
);
316 TEST(NtUserSystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT
, 0, (PVOID
)0x80000000, 0) == FALSE
);
317 TEST(GetLastError() == ERROR_NOACCESS
);
318 for(i
= 0; i
< 1000; i
++) data
[i
] = 0xdeadbeef;
320 /* test wrong bools */
324 Test_NtUserSystemParametersInfo_Winsta(void)
326 HWINSTA hwinsta
, hwinstaOld
;
331 hwinstaOld
= GetProcessWindowStation();
332 hwinsta
= CreateWindowStation(NULL
, 0, READ_CONTROL
, NULL
);
333 SetProcessWindowStation(hwinsta
);
334 printf("hwinstaOld=%p, hwinsta=%p\n", hwinstaOld
, hwinsta
);
336 #if 1 // currently Winsta stuff is broken in ros
337 TEST(SystemParametersInfoA(SPI_GETBEEP
, 0, ai
, 0) == 0);
338 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
339 TEST(SystemParametersInfoA(SPI_SETBEEP
, 0, ai
, 0) == 0);
340 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
341 TEST(SystemParametersInfoA(SPI_GETMOUSE
, 0, ai
, 0) == 0);
342 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
343 TEST(SystemParametersInfoA(SPI_SETMOUSE
, 0, ai
, 0) == 0);
344 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
345 TEST(SystemParametersInfoA(SPI_GETBORDER
, 0, ai
, 0) == 0);
346 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
347 TEST(SystemParametersInfoA(SPI_SETBORDER
, 0, ai
, 0) == 0);
348 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
349 TEST(SystemParametersInfoA(SPI_GETKEYBOARDSPEED
, 0, ai
, 0) == 0);
350 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
351 TEST(SystemParametersInfoA(SPI_SETKEYBOARDSPEED
, 0, ai
, 0) == 0);
352 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
353 TEST(SystemParametersInfoA(SPI_ICONHORIZONTALSPACING
, 0, ai
, 0) == 0);
354 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
355 TEST(SystemParametersInfoA(SPI_ICONHORIZONTALSPACING
, 32, 0, 0) == 0);
356 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
357 TEST(SystemParametersInfoA(SPI_GETSCREENSAVETIMEOUT
, 0, ai
, 0) == 0);
358 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
359 TEST(SystemParametersInfoA(SPI_SETSCREENSAVETIMEOUT
, 0, ai
, 0) == 0);
360 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
361 TEST(SystemParametersInfoA(SPI_GETKEYBOARDCUES
, 0, &bRet
, 0) == 0);
362 TEST(GetLastError() == ERROR_ACCESS_DENIED
);
363 TEST(SystemParametersInfoA(SPI_SETKEYBOARDCUES
, 0, (PVOID
)1, 0) == 0);
364 TEST(GetLastError() == ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
);
367 SetProcessWindowStation(hwinstaOld
);
371 Test_NtUserSystemParametersInfo_fWinIni(void)
374 // UINT uFocusBorderHeight;
378 ato
.cbSize
= sizeof(ato
);
379 NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 0, &ato
, 0);
381 NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT
, 0, &ato
, 0);
384 // NtUserSystemParametersInfo(SPI_GETFOCUSBORDERHEIGHT, 0, &uFocusBorderHeight, 0);
385 // NtUserSystemParametersInfo(SPI_SETFOCUSBORDERHEIGHT, 0, &uFocusBorderHeight, SPIF_UPDATEINIFILE);
387 NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT
, 0, &ato
, 0);
390 QueryUserRegValueW(L
"Control Panel\\Accessibility\\TimeOut", L
"TimeToWait", &Buffer
, &cbSize
, NULL
);
395 Test_MetricKey(PCWSTR pwszVal
, INT iVal
)
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
);
407 Test_UserPref(UINT uiGet
, UINT uiSet
, DWORD dwPrefMask
)
409 BOOL bOrig
, bTemp
= 0;
410 DWORD dwUserPref
, dwUserPrefOrg
;
413 /* Get original values */
414 NtUserSystemParametersInfo(uiGet
, 0, &bOrig
, 0);
415 cbSize
= sizeof(dwUserPrefOrg
);
416 QueryUserRegValueW(KEY_DESKTOP
, VAL_PREFMASK
, &dwUserPrefOrg
, &cbSize
, NULL
);
419 NtUserSystemParametersInfo(uiSet
, 0, NULL
, SPIF_UPDATEINIFILE
);
420 NtUserSystemParametersInfo(uiGet
, 0, &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
)));
427 /* Value 1 without Registry */
428 NtUserSystemParametersInfo(uiSet
, 0, (PVOID
)1, 0);
429 NtUserSystemParametersInfo(uiGet
, 0, &bTemp
, 0);
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
)));
436 /* Value 2 without Registry */
437 NtUserSystemParametersInfo(uiSet
, 0, (PVOID
)2, 0);
438 NtUserSystemParametersInfo(uiGet
, 0, &bTemp
, 0);
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
)));
445 /* Value 1 with Registry */
446 NtUserSystemParametersInfo(uiSet
, 0, (PVOID
)1, SPIF_UPDATEINIFILE
);
447 NtUserSystemParametersInfo(uiGet
, 0, &bTemp
, 0);
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
)));
454 /* Restore original value */
455 NtUserSystemParametersInfo(uiSet
, 0, (PVOID
)bOrig
, SPIF_UPDATEINIFILE
);
461 /******************************************************************************/
464 Test_SPI_SETBEEP(void)
466 BOOL bOrig
, bTemp
= 0;
470 /* Get original value */
471 NtUserSystemParametersInfo(SPI_GETBEEP
, 0, &bOrig
, 0);
474 NtUserSystemParametersInfo(SPI_SETBEEP
, 0, NULL
, SPIF_UPDATEINIFILE
);
475 NtUserSystemParametersInfo(SPI_GETBEEP
, 0, &bTemp
, 0);
477 cbSize
= sizeof(szReg
);
478 TEST(QueryUserRegValueW(KEY_SOUND
, VAL_BEEP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
479 TEST(_wcsicmp(szReg
, L
"No") == 0);
482 NtUserSystemParametersInfo(SPI_SETBEEP
, 1, NULL
, SPIF_UPDATEINIFILE
);
483 NtUserSystemParametersInfo(SPI_GETBEEP
, 0, &bTemp
, 0);
485 cbSize
= sizeof(szReg
);
486 TEST(QueryUserRegValueW(KEY_SOUND
, VAL_BEEP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
487 TEST(_wcsicmp(szReg
, L
"Yes") == 0);
490 NtUserSystemParametersInfo(SPI_SETBEEP
, 2, NULL
, SPIF_UPDATEINIFILE
);
491 NtUserSystemParametersInfo(SPI_GETBEEP
, 0, &bTemp
, 0);
493 cbSize
= sizeof(szReg
);
494 TEST(QueryUserRegValueW(KEY_SOUND
, VAL_BEEP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
495 TEST(_wcsicmp(szReg
, L
"Yes") == 0);
497 /* Restore original value */
498 NtUserSystemParametersInfo(SPI_SETBEEP
, 0, &bOrig
, SPIF_UPDATEINIFILE
);
502 Test_SPI_SETMOUSE(void)
504 INT aiOrig
[3], aiTemp
[3];
506 /* Get original value */
507 NtUserSystemParametersInfo(SPI_GETMOUSE
, 0, aiOrig
, 0);
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);
515 /* Set modified values */
516 aiTemp
[0] = aiOrig
[0] + 1;
517 aiTemp
[1] = aiOrig
[1] - 1;
518 aiTemp
[2] = aiOrig
[2] + 2;
519 NtUserSystemParametersInfo(SPI_SETMOUSE
, 2, aiTemp
, SPIF_UPDATEINIFILE
);
520 aiTemp
[0] = aiTemp
[1] = aiTemp
[2] = 0;
523 NtUserSystemParametersInfo(SPI_GETMOUSE
, 0, aiTemp
, 0);
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);
530 // FIXME: Test registry values
532 /* Restore original value */
533 NtUserSystemParametersInfo(SPI_SETMOUSE
, 0, aiOrig
, SPIF_UPDATEINIFILE
);
537 Test_SPI_SETBORDER(void)
539 INT iOrig
, iTemp
= 0;
541 /* Get original value */
542 NtUserSystemParametersInfo(SPI_GETBORDER
, 0, &iOrig
, 0);
545 NtUserSystemParametersInfo(SPI_SETBORDER
, 0, NULL
, SPIF_UPDATEINIFILE
);
546 NtUserSystemParametersInfo(SPI_GETBORDER
, 0, &iTemp
, 0);
548 TEST(GetSystemMetrics(SM_CXBORDER
) == 1);
551 NtUserSystemParametersInfo(SPI_SETBORDER
, 1, NULL
, SPIF_UPDATEINIFILE
);
552 NtUserSystemParametersInfo(SPI_GETBORDER
, 0, &iTemp
, 0);
554 // Test_MetricKey(pti, VAL_BORDER, 1);
557 NtUserSystemParametersInfo(SPI_SETBORDER
, 2, NULL
, SPIF_UPDATEINIFILE
);
558 NtUserSystemParametersInfo(SPI_GETBORDER
, 0, &iTemp
, 0);
560 TEST(GetSystemMetrics(SM_CXBORDER
) == 1);
562 /* Restore original value */
563 NtUserSystemParametersInfo(SPI_SETBORDER
, iOrig
, NULL
, SPIF_UPDATEINIFILE
);
567 // Test_SPI_SETKEYBOARDSPEED();
568 // Test_SPI_LANGDRIVER();
569 // Test_SPI_ICONHORIZONTALSPACING();
570 // Test_SPI_SETSCREENSAVETIMEOUT();
571 // Test_SPI_SETSCREENSAVEACTIVE();
572 // Test_SPI_SETGRIDGRANULARITY();
575 Test_SPI_SETDESKWALLPAPER(void)
577 UNICODE_STRING ustrOld
, ustrNew
;
578 WCHAR szOld
[MAX_PATH
];
579 WCHAR szNew
[MAX_PATH
];
581 /* Get old Wallpaper */
582 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, MAX_PATH
, szOld
, 0) == 1);
583 RtlInitUnicodeString(&ustrOld
, szOld
);
585 /* Set no Wallpaper */
586 TEST(NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER
, 0, L
"", 0) == 1);
587 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, MAX_PATH
, szNew
, 0) == 1);
590 /* Set no Wallpaper 2 */
591 RtlInitUnicodeString(&ustrNew
, L
"");
592 TEST(NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER
, 0, &ustrNew
, 0) == 1);
593 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, MAX_PATH
, szNew
, 0) == 1);
596 /* Reset Wallpaper */
597 TEST(NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER
, 0, NULL
, 0) == 1);
598 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, MAX_PATH
, szNew
, 0) == 1);
599 TEST(wcscmp(szNew
, szOld
) == 0);
601 /* Set new Wallpaper */
602 RtlInitUnicodeString(&ustrNew
, L
"test.bmp");
603 TEST(NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER
, 0, &ustrNew
, 0) == 1);
604 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, MAX_PATH
, szNew
, 0) == 1);
605 TEST(wcscmp(szNew
, L
"test.bmp") == 0);
607 /* Get Wallpaper, too small buffer */
608 szNew
[0] = 0; szNew
[1] = 0; szNew
[2] = 0;
609 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, 3, szNew
, 0) == 1);
614 /* Set invalid Wallpaper */
615 SetLastError(0xdeadbeef);
616 RtlInitUnicodeString(&ustrNew
, L
"*#!!-&");
617 TEST(NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER
, 0, &ustrNew
, 0) == 0);
618 TEST(GetLastError() == ERROR_FILE_NOT_FOUND
);
619 TEST(NtUserSystemParametersInfo(SPI_GETDESKWALLPAPER
, MAX_PATH
, szNew
, 0) == 1);
620 TEST(wcscmp(szNew
, L
"*#!!-&") == 0);
622 /* Restore old Wallpaper */
623 TEST(NtUserSystemParametersInfo(SPI_SETDESKWALLPAPER
, MAX_PATH
, &ustrOld
, SPIF_UPDATEINIFILE
) == 1);
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();
637 Test_SPI_SETMOUSEBUTTONSWAP(void)
639 BOOL bOrig
, bTemp
= 0;
643 /* Get original value */
644 bOrig
= GetSystemMetrics(SM_SWAPBUTTON
);
647 NtUserSystemParametersInfo(SPI_SETMOUSEBUTTONSWAP
, 0, NULL
, SPIF_UPDATEINIFILE
);
648 bTemp
= GetSystemMetrics(SM_SWAPBUTTON
);
650 cbSize
= sizeof(szReg
);
651 TEST(QueryUserRegValueW(KEY_MOUSE
, VAL_SWAP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
652 TEST(_wcsicmp(szReg
, L
"0") == 0);
655 NtUserSystemParametersInfo(SPI_SETMOUSEBUTTONSWAP
, 1, NULL
, SPIF_UPDATEINIFILE
);
656 bTemp
= GetSystemMetrics(SM_SWAPBUTTON
);
658 cbSize
= sizeof(szReg
);
659 TEST(QueryUserRegValueW(KEY_MOUSE
, VAL_SWAP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
660 TEST(_wcsicmp(szReg
, L
"1") == 0);
663 NtUserSystemParametersInfo(SPI_SETMOUSEBUTTONSWAP
, 2, NULL
, SPIF_UPDATEINIFILE
);
664 bTemp
= GetSystemMetrics(SM_SWAPBUTTON
);
666 cbSize
= sizeof(szReg
);
667 TEST(QueryUserRegValueW(KEY_MOUSE
, VAL_SWAP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
668 TEST(_wcsicmp(szReg
, L
"2") == 0);
671 NtUserSystemParametersInfo(SPI_SETMOUSEBUTTONSWAP
, -1, NULL
, SPIF_UPDATEINIFILE
);
672 bTemp
= GetSystemMetrics(SM_SWAPBUTTON
);
674 cbSize
= sizeof(szReg
);
675 TEST(QueryUserRegValueW(KEY_MOUSE
, VAL_SWAP
, &szReg
, &cbSize
, NULL
) == ERROR_SUCCESS
);
676 TEST(_wcsicmp(szReg
, L
"-1") == 0);
678 /* Restore original value */
679 NtUserSystemParametersInfo(SPI_SETMOUSEBUTTONSWAP
, bOrig
, 0, SPIF_UPDATEINIFILE
);
685 Test_SPI_SETICONTITLELOGFONT(void)
694 /* Get original value */
695 ASSERT(NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT
, sizeof(lfOrig
), &lfOrig
, 0));
697 /* Test uiParam == 0 */
698 memset(&buf
, 0, sizeof(buf
));
699 buf
.lf
.lfFaceName
[LF_FACESIZE
-1] = 33;
700 buf
.dwRedzone
= 0xdeadbeef;
701 TEST(NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT
, 0, &buf
.lf
, 0) == 1);
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);
708 /* Test uiParam < sizeof(LOGFONTW) */
709 memset(&buf
, 0, sizeof(buf
));
710 buf
.lf
.lfFaceName
[LF_FACESIZE
-1] = 33;
711 buf
.dwRedzone
= 0xdeadbeef;
712 TEST(NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT
, 8, &buf
.lf
, 0) == 1);
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);
719 /* Test uiParam < 0 */
720 TEST(NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT
, -1, &buf
.lf
, 0) == 1);
724 Test_SPI_SETFASTTASKSWITCH(void)
727 TEST(NtUserSystemParametersInfo(SPI_SETFASTTASKSWITCH
, 0, 0, 0) == 1);
728 TEST(NtUserSystemParametersInfo(SPI_SETFASTTASKSWITCH
, 0, buf
, 0) == 1);
734 Test_SPI_SETDRAGFULLWINDOWS(void)
740 Test_SPI_SETNONCLIENTMETRICS(void)
742 NONCLIENTMETRICSW metrics
;
743 NONCLIENTMETRICSW origMetrics
;
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);
749 origMetrics
= metrics
;
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
);
756 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS
, 0, (PVOID
)&origMetrics
, 0) == 1);
760 Test_SPI_SETMINIMIZEDMETRICS(void)
762 MINIMIZEDMETRICS metrics
;
763 MINIMIZEDMETRICS origMetrics
;
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);
769 origMetrics
= metrics
;
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
);
776 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS
, 0, (PVOID
)&origMetrics
, 0) == 1);
780 Test_SPI_SETICONMETRICS(void)
782 ICONMETRICSW metrics
;
783 ICONMETRICSW origMetrics
;
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);
789 origMetrics
= metrics
;
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
);
796 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS
, 0, (PVOID
)&origMetrics
, 0) == 1);
800 Test_SPI_SETWORKAREA(void)
804 /* Get the original value */
805 ASSERT(NtUserSystemParametersInfo(SPI_GETWORKAREA
, 0, &rcOrig
, 0) == 1);
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);
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);
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);
848 /* Restore original value */
849 ASSERT(NtUserSystemParametersInfo(SPI_SETWORKAREA
, 0, &rcOrig
, 0) == 1);
855 Test_SPI_SETPENWINDOWS(void)
861 Test_SPI_SETFILTERKEYS(void)
867 Test_SPI_SETTOGGLEKEYS(void)
873 Test_SPI_SETMOUSEKEYS(void)
879 Test_SPI_SETSHOWSOUNDS(void)
885 Test_SPI_SETSTICKYKEYS(void)
887 STICKYKEYS skOrig
, sk
;
889 /* Get original values */
890 skOrig
.cbSize
= sizeof(STICKYKEYS
);
891 ASSERT(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, 0, &skOrig
, 0) == 1);
893 sk
.cbSize
= sizeof(STICKYKEYS
)+1;
894 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, 0, &sk
, 0) == 0);
896 sk
.cbSize
= sizeof(STICKYKEYS
)-1;
897 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, 0, &sk
, 0) == 0);
899 sk
.cbSize
= sizeof(STICKYKEYS
);
900 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, 1, &sk
, 0) == 0);
901 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, -1, &sk
, 0) == 0);
902 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, sk
.cbSize
, &sk
, 0) == 1);
903 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, sk
.cbSize
-1, &sk
, 0) == 0);
904 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, sk
.cbSize
+1, &sk
, 0) == 0);
907 sk
.dwFlags
= (skOrig
.dwFlags
^ 1);
908 TEST(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS
, sk
.cbSize
+1, &sk
, 0) == 0);
909 TEST(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS
, sk
.cbSize
-1, &sk
, 0) == 0);
910 TEST(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS
, sk
.cbSize
, &sk
, 0) == 1);
913 TEST(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS
, 0, &sk
, 0) == 1);
914 TEST(sk
.dwFlags
== (skOrig
.dwFlags
^ 1));
916 /* Restore original values */
917 skOrig
.cbSize
= sizeof(STICKYKEYS
);
918 ASSERT(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS
, 0, &skOrig
, 0) == 1);
923 Test_SPI_SETACCESSTIMEOUT(void)
925 ACCESSTIMEOUT atoOrig
, atoTmp
;
927 /* Get original values */
928 atoOrig
.cbSize
= sizeof(ACCESSTIMEOUT
);
929 ASSERT(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 0, &atoOrig
, 0) == 1);
931 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
) - 1;
932 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 0, &atoTmp
, 0) == 0);
933 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
) + 1;
934 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 0, &atoTmp
, 0) == 0);
935 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
);
936 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 0, &atoTmp
, 0) == 1);
937 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
);
938 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, 1, &atoTmp
, 0) == 0);
939 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
);
940 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, -1, &atoTmp
, 0) == 0);
941 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
);
942 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, sizeof(ACCESSTIMEOUT
), &atoTmp
, 0) == 1);
943 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
);
944 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, sizeof(ACCESSTIMEOUT
)-1, &atoTmp
, 0) == 0);
945 atoTmp
.cbSize
= sizeof(ACCESSTIMEOUT
);
946 TEST(NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT
, sizeof(ACCESSTIMEOUT
)+1, &atoTmp
, 0) == 0);
948 /* Restore original values */
949 ASSERT(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT
, sizeof(atoOrig
), &atoOrig
, 0) == 1);
953 Test_SPI_SETSERIALKEYS(void)
959 Test_SPI_SETSOUNDSENTRY(void)
965 Test_SPI_SETHIGHCONTRAST(void)
971 Test_SPI_SETKEYBOARDPREF(void)
976 // Test_SPI_SETSCREENREADER();
977 /// Test_SPI_SETANIMATION();
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();
1008 Test_SPI_SETMENUANIMATION(void)
1010 BOOL bOrig
, bTemp
= 0;
1011 DWORD dwUserPrefMask
;
1014 /* Get original values */
1015 NtUserSystemParametersInfo(SPI_GETMENUANIMATION
, 0, &bOrig
, 0);
1018 NtUserSystemParametersInfo(SPI_SETMENUANIMATION
, 0, NULL
, SPIF_UPDATEINIFILE
);
1019 NtUserSystemParametersInfo(SPI_GETMENUANIMATION
, 0, &bTemp
, 0);
1021 cbSize
= sizeof(dwUserPrefMask
);
1022 TEST(QueryUserRegValueW(KEY_DESKTOP
, VAL_PREFMASK
, &dwUserPrefMask
, &cbSize
, NULL
) == ERROR_SUCCESS
);
1023 TEST((dwUserPrefMask
& UPM_MENUANIMATION
) == 0);
1026 NtUserSystemParametersInfo(SPI_SETMENUANIMATION
, 0, (PVOID
)1, SPIF_UPDATEINIFILE
);
1027 NtUserSystemParametersInfo(SPI_GETMENUANIMATION
, 0, &bTemp
, 0);
1029 cbSize
= sizeof(dwUserPrefMask
);
1030 TEST(QueryUserRegValueW(KEY_DESKTOP
, VAL_PREFMASK
, &dwUserPrefMask
, &cbSize
, NULL
) == ERROR_SUCCESS
);
1031 TEST((dwUserPrefMask
& UPM_MENUANIMATION
) != 0);
1034 /* Restore original values */
1035 NtUserSystemParametersInfo(SPI_SETMENUANIMATION
, 0, (PVOID
)bOrig
, SPIF_UPDATEINIFILE
);
1038 // Test_SPI_SETCOMBOBOXANIMATION();
1039 // Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1040 // Test_SPI_SETGRADIENTCAPTIONS();
1043 Test_SPI_SETKEYBOARDCUES(void)
1045 Test_UserPref(SPI_GETKEYBOARDCUES
, SPI_SETKEYBOARDCUES
, UPM_KEYBOARDCUES
);
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();
1058 Test_SPI_SETMOUSECLICKLOCK(void)
1060 Test_UserPref(SPI_GETMOUSECLICKLOCK
, SPI_SETMOUSECLICKLOCK
, UPM_CLICKLOCK
);
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();
1084 START_TEST(NtUserSystemParametersInfo
)
1088 hWnd
= CreateTestWindow();
1091 Test_NtUserSystemParametersInfo_Params();
1092 Test_NtUserSystemParametersInfo_fWinIni();
1093 Test_NtUserSystemParametersInfo_Winsta();
1096 Test_SPI_SETMOUSE();
1097 Test_SPI_SETBORDER();
1098 // Test_SPI_SETKEYBOARDSPEED();
1099 // Test_SPI_LANGDRIVER();
1100 // Test_SPI_ICONHORIZONTALSPACING();
1101 // Test_SPI_SETSCREENSAVETIMEOUT();
1102 // Test_SPI_SETSCREENSAVEACTIVE();
1103 // Test_SPI_SETGRIDGRANULARITY();
1104 Test_SPI_SETDESKWALLPAPER();
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();
1113 Test_SPI_SETMOUSEBUTTONSWAP();
1114 Test_SPI_SETICONTITLELOGFONT();
1115 Test_SPI_SETFASTTASKSWITCH();
1116 Test_SPI_SETDRAGFULLWINDOWS();
1117 Test_SPI_SETNONCLIENTMETRICS();
1118 Test_SPI_SETMINIMIZEDMETRICS();
1119 Test_SPI_SETICONMETRICS();
1120 Test_SPI_SETWORKAREA();
1121 Test_SPI_SETPENWINDOWS();
1122 Test_SPI_SETFILTERKEYS();
1123 Test_SPI_SETTOGGLEKEYS();
1124 Test_SPI_SETMOUSEKEYS();
1125 Test_SPI_SETSHOWSOUNDS();
1126 Test_SPI_SETSTICKYKEYS();
1127 Test_SPI_SETACCESSTIMEOUT();
1128 Test_SPI_SETSERIALKEYS();
1129 Test_SPI_SETSOUNDSENTRY();
1130 Test_SPI_SETHIGHCONTRAST();
1131 Test_SPI_SETKEYBOARDPREF();
1132 // Test_SPI_SETSCREENREADER();
1133 /// Test_SPI_SETANIMATION();
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();
1162 Test_SPI_SETMENUANIMATION();
1163 // Test_SPI_SETCOMBOBOXANIMATION();
1164 // Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1165 // Test_SPI_SETGRADIENTCAPTIONS();
1166 Test_SPI_SETKEYBOARDCUES();
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();
1175 Test_SPI_SETMOUSECLICKLOCK();
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();
1196 DestroyWindow(hWnd
);