ReactOS 0.4.15-dev-8408-g466a198
NtUserSystemParametersInfo.c File Reference
#include "../win32nt.h"
#include <winreg.h>
Include dependency graph for NtUserSystemParametersInfo.c:

Go to the source code of this file.

Enumerations

enum  {
  UPM_ACTIVEWINDOWTRACKING = 0x01 , UPM_MENUANIMATION = 0x02 , UPM_COMBOBOXANIMATION = 0x04 , UPM_LISTBOXSMOOTHSCROLLING = 0x08 ,
  UPM_GRADIENTCAPTIONS = 0x10 , UPM_KEYBOARDCUES = 0x20 , UPM_ACTIVEWNDTRKZORDER = 0x40 , UPM_HOTTRACKING = 0x80 ,
  UPM_RESERVED = 0x100 , UPM_MENUFADE = 0x200 , UPM_SELECTIONFADE = 0x400 , UPM_TOOLTIPANIMATION = 0x800 ,
  UPM_TOOLTIPFADE = 0x1000 , UPM_CURSORSHADOW = 0x2000 , UPM_CLICKLOCK = 0x8000 , UPM_UIEFFECTS = 0x80000000 ,
  UPM_DEFAULT = 0x80003E9E
}
 

Functions

LONG QueryUserRegValueW (PCWSTR pszSubKey, PCWSTR pszValueName, PVOID pData, LPDWORD cbSize, LPDWORD pType)
 
HWND CreateTestWindow ()
 
void Test_NtUserSystemParametersInfo_Params (void)
 
void Test_NtUserSystemParametersInfo_Winsta (void)
 
void Test_NtUserSystemParametersInfo_fWinIni (void)
 
void Test_MetricKey (PCWSTR pwszVal, INT iVal)
 
void Test_UserPref (UINT uiGet, UINT uiSet, DWORD dwPrefMask)
 
void Test_SPI_SETBEEP (void)
 
void Test_SPI_SETMOUSE (void)
 
void Test_SPI_SETBORDER (void)
 
void Test_SPI_SETDESKWALLPAPER (void)
 
void Test_SPI_SETMOUSEBUTTONSWAP (void)
 
void Test_SPI_SETICONTITLELOGFONT (void)
 
void Test_SPI_SETFASTTASKSWITCH (void)
 
void Test_SPI_SETDRAGFULLWINDOWS (void)
 
void Test_SPI_SETNONCLIENTMETRICS (void)
 
void Test_SPI_SETMINIMIZEDMETRICS (void)
 
void Test_SPI_SETICONMETRICS (void)
 
void Test_SPI_SETWORKAREA (void)
 
void Test_SPI_SETPENWINDOWS (void)
 
void Test_SPI_SETFILTERKEYS (void)
 
void Test_SPI_SETTOGGLEKEYS (void)
 
void Test_SPI_SETMOUSEKEYS (void)
 
void Test_SPI_SETSHOWSOUNDS (void)
 
void Test_SPI_SETSTICKYKEYS (void)
 
void Test_SPI_SETACCESSTIMEOUT (void)
 
void Test_SPI_SETSERIALKEYS (void)
 
void Test_SPI_SETSOUNDSENTRY (void)
 
void Test_SPI_SETHIGHCONTRAST (void)
 
void Test_SPI_SETKEYBOARDPREF (void)
 
void Test_SPI_SETMENUANIMATION (void)
 Test_SPI_SETANIMATION();.
 
void Test_SPI_SETKEYBOARDCUES (void)
 
void Test_SPI_SETMOUSECLICKLOCK (void)
 
 START_TEST (NtUserSystemParametersInfo)
 

Variables

static const WCHARKEY_MOUSE = L"Control Panel\\Mouse"
 
static const WCHARVAL_SWAP = L"SwapMouseButtons"
 
static const WCHARKEY_DESKTOP = L"Control Panel\\Desktop"
 
static const WCHARVAL_PREFMASK = L"UserPreferencesMask"
 
enum { ... }  USERPREFMASKS
 
static const WCHARKEY_METRIC = L"Control Panel\\Desktop\\WindowMetrics"
 
static const WCHARKEY_SOUND = L"Control Panel\\Sound"
 
static const WCHARVAL_BEEP = L"Beep"
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
UPM_ACTIVEWINDOWTRACKING 
UPM_MENUANIMATION 
UPM_COMBOBOXANIMATION 
UPM_LISTBOXSMOOTHSCROLLING 
UPM_GRADIENTCAPTIONS 
UPM_KEYBOARDCUES 
UPM_ACTIVEWNDTRKZORDER 
UPM_HOTTRACKING 
UPM_RESERVED 
UPM_MENUFADE 
UPM_SELECTIONFADE 
UPM_TOOLTIPANIMATION 
UPM_TOOLTIPFADE 
UPM_CURSORSHADOW 
UPM_CLICKLOCK 
UPM_UIEFFECTS 
UPM_DEFAULT 

Definition at line 31 of file NtUserSystemParametersInfo.c.

32{
34 UPM_MENUANIMATION = 0x02,
38 UPM_KEYBOARDCUES = 0x20,
40 UPM_HOTTRACKING = 0x80,
41 UPM_RESERVED = 0x100,
42 UPM_MENUFADE = 0x200,
43 UPM_SELECTIONFADE = 0x400,
45 UPM_TOOLTIPFADE = 0x1000,
46 UPM_CURSORSHADOW = 0x2000,
47 UPM_CLICKLOCK = 0x8000,
48 // room for more
49 UPM_UIEFFECTS = 0x80000000,
50 UPM_DEFAULT = 0x80003E9E
enum @1598 USERPREFMASKS
@ UPM_TOOLTIPANIMATION
@ UPM_COMBOBOXANIMATION
@ UPM_ACTIVEWINDOWTRACKING
@ UPM_GRADIENTCAPTIONS
@ UPM_LISTBOXSMOOTHSCROLLING
@ UPM_ACTIVEWNDTRKZORDER

Function Documentation

◆ CreateTestWindow()

HWND CreateTestWindow ( )

Definition at line 89 of file NtUserSystemParametersInfo.c.

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}
#define NULL
Definition: types.h:112
static HINSTANCE hinst
Definition: edit.c:551
#define WS_VISIBLE
Definition: pedump.c:620
HBRUSH hbrBackground
Definition: winuser.h:3170
HICON hIcon
Definition: winuser.h:3168
HINSTANCE hInstance
Definition: winuser.h:3167
HCURSOR hCursor
Definition: winuser.h:3169
int cbWndExtra
Definition: winuser.h:3166
UINT style
Definition: winuser.h:3163
LPCSTR lpszMenuName
Definition: winuser.h:3171
LPCSTR lpszClassName
Definition: winuser.h:3172
WNDPROC lpfnWndProc
Definition: winuser.h:3164
int cbClsExtra
Definition: winuser.h:3165
#define GetModuleHandle
Definition: winbase.h:3827
LRESULT WINAPI DefWindowProcA(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
#define CreateWindowA(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4315
ATOM WINAPI RegisterClassA(_In_ CONST WNDCLASSA *)

Referenced by START_TEST().

◆ QueryUserRegValueW()

LONG QueryUserRegValueW ( PCWSTR  pszSubKey,
PCWSTR  pszValueName,
PVOID  pData,
LPDWORD  cbSize,
LPDWORD  pType 
)

Definition at line 76 of file NtUserSystemParametersInfo.c.

77{
78 HKEY hKey;
79 LONG ret;
80
82 ret = RegQueryValueExW(hKey, pszValueName, NULL, pType, (LPBYTE)pData, cbSize);
84 return ret;
85}
#define RegCloseKey(hKey)
Definition: registry.h:49
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
FxAutoRegKey hKey
#define KEY_QUERY_VALUE
Definition: nt_native.h:1016
long LONG
Definition: pedump.c:60
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
unsigned char * LPBYTE
Definition: typedefs.h:53
int ret
#define HKEY_CURRENT_USER
Definition: winreg.h:11

Referenced by Test_MetricKey(), Test_NtUserSystemParametersInfo_fWinIni(), Test_SPI_SETBEEP(), Test_SPI_SETMENUANIMATION(), Test_SPI_SETMOUSEBUTTONSWAP(), and Test_UserPref().

◆ START_TEST()

START_TEST ( NtUserSystemParametersInfo  )

Test_SPI_SETANIMATION();

Definition at line 1086 of file NtUserSystemParametersInfo.c.

1087{
1088 HWND hWnd;
1089
1091 ASSERT(hWnd);
1092
1096
1100// Test_SPI_SETKEYBOARDSPEED();
1101// Test_SPI_LANGDRIVER();
1102// Test_SPI_ICONHORIZONTALSPACING();
1103// Test_SPI_SETSCREENSAVETIMEOUT();
1104// Test_SPI_SETSCREENSAVEACTIVE();
1105// Test_SPI_SETGRIDGRANULARITY();
1107// Test_SPI_SETDESKPATTERN();
1108// Test_SPI_SETKEYBOARDDELAY();
1109// Test_SPI_ICONVERTICALSPACING();
1110// Test_SPI_SETICONTITLEWRAP();
1111// Test_SPI_SETMENUDROPALIGNMENT();
1112// Test_SPI_SETDOUBLECLKWIDTH();
1113// Test_SPI_SETDOUBLECLKHEIGHT();
1114// Test_SPI_SETDOUBLECLICKTIME();
1134// Test_SPI_SETSCREENREADER();
1136// Test_SPI_SETFONTSMOOTHING();
1137// Test_SPI_SETDRAGWIDTH();
1138// Test_SPI_SETDRAGHEIGHT();
1139// Test_SPI_SETHANDHELD();
1140// Test_SPI_SETLOWPOWERTIMEOUT();
1141// Test_SPI_SETPOWEROFFTIMEOUT();
1142// Test_SPI_SETLOWPOWERACTIVE();
1143// Test_SPI_SETPOWEROFFACTIVE();
1144// Test_SPI_SETCURSORS();
1145// Test_SPI_SETICONS();
1146// Test_SPI_SETDEFAULTINPUTLANG();
1147// Test_SPI_SETLANGTOGGLE();
1148// Test_SPI_GETWINDOWSEXTENSION();
1149// Test_SPI_SETMOUSETRAILS();
1150// Test_SPI_SETSNAPTODEFBUTTON();
1151// Test_SPI_GETSCREENSAVERRUNNING();
1152// Test_SPI_SETMOUSEHOVERWIDTH();
1153// Test_SPI_SETMOUSEHOVERHEIGHT();
1154// Test_SPI_SETMOUSEHOVERTIME();
1155// Test_SPI_SETWHEELSCROLLLINES();
1156// Test_SPI_SETMENUSHOWDELAY();
1157// Test_SPI_SETWHEELSCROLLCHARS();
1158// Test_SPI_SETSHOWIMEUI();
1159// Test_SPI_SETMOUSESPEED();
1160// Test_SPI_GETSCREENSAVERRUNNING();
1161// Test_SPI_SETAUDIODESCRIPTION();
1162// Test_SPI_SETSCREENSAVESECURE();
1163// Test_SPI_SETACTIVEWINDOWTRACKING();
1165// Test_SPI_SETCOMBOBOXANIMATION();
1166// Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1167// Test_SPI_SETGRADIENTCAPTIONS();
1169// Test_SPI_SETACTIVEWNDTRKZORDER();
1170// Test_SPI_SETHOTTRACKING();
1171// Test_SPI_SETMENUFADE();
1172// Test_SPI_SETSELECTIONFADE();
1173// Test_SPI_SETTOOLTIPANIMATION();
1174// Test_SPI_SETTOOLTIPFADE();
1175// Test_SPI_SETCURSORSHADOW();
1176// Test_SPI_SETMOUSESONAR();
1178// Test_SPI_SETMOUSEVANISH();
1179// Test_SPI_SETFLATMENU();
1180// Test_SPI_SETDROPSHADOW();
1181// Test_SPI_SETBLOCKSENDINPUTRESETS();
1182// Test_SPI_GETSETUIEFFECTS();
1183// Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1184// Test_SPI_SETCLIENTAREAANIMATION();
1185// Test_SPI_SETCLEARTYPE();
1186// Test_SPI_SETSPEECHRECOGNITION();
1187// Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1188// Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1189// Test_SPI_SETFOREGROUNDFLASHCOUNT();
1190// Test_SPI_SETCARETWIDTH();
1191// Test_SPI_SETMOUSECLICKLOCKTIME();
1192// Test_SPI_SETFONTSMOOTHINGTYPE();
1193// Test_SPI_SETFONTSMOOTHINGCONTRAST();
1194// Test_SPI_SETFOCUSBORDERWIDTH();
1195// Test_SPI_SETFOCUSBORDERHEIGHT();
1196// Test_SPI_SETFONTSMOOTHINGORIENTATION();
1197
1199}
void Test_NtUserSystemParametersInfo_Winsta(void)
void Test_SPI_SETSHOWSOUNDS(void)
void Test_SPI_SETBORDER(void)
void Test_SPI_SETSTICKYKEYS(void)
void Test_SPI_SETTOGGLEKEYS(void)
void Test_SPI_SETHIGHCONTRAST(void)
void Test_SPI_SETICONTITLELOGFONT(void)
void Test_SPI_SETDESKWALLPAPER(void)
void Test_SPI_SETWORKAREA(void)
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)
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)
void Test_SPI_SETMOUSEKEYS(void)
void Test_SPI_SETFILTERKEYS(void)
void Test_SPI_SETMOUSEBUTTONSWAP(void)
HWND hWnd
Definition: settings.c:17
#define ASSERT(a)
Definition: mode.c:44
BOOL WINAPI DestroyWindow(_In_ HWND)

◆ Test_MetricKey()

void Test_MetricKey ( PCWSTR  pwszVal,
INT  iVal 
)

Definition at line 395 of file NtUserSystemParametersInfo.c.

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}
LONG QueryUserRegValueW(PCWSTR pszSubKey, PCWSTR pszValueName, PVOID pData, LPDWORD cbSize, LPDWORD pType)
static const WCHAR * KEY_METRIC
#define ok(value,...)
Definition: atltest.h:57
#define ERROR_SUCCESS
Definition: deptool.c:10
unsigned long DWORD
Definition: ntddk_ex.h:95
#define L(x)
Definition: ntvdm.h:50
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ Test_NtUserSystemParametersInfo_fWinIni()

void Test_NtUserSystemParametersInfo_fWinIni ( void  )

Definition at line 371 of file NtUserSystemParametersInfo.c.

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}
Definition: bufpool.h:45
BOOL NTAPI NtUserSystemParametersInfo(UINT uiAction, UINT uiParam, PVOID pvParam, UINT fWinIni)
Definition: sysparams.c:2168
DWORD iTimeOutMSec
Definition: winuser.h:2931
#define SPI_GETACCESSTIMEOUT
Definition: winuser.h:1409
#define SPI_SETACCESSTIMEOUT
Definition: winuser.h:1410

Referenced by START_TEST().

◆ Test_NtUserSystemParametersInfo_Params()

void Test_NtUserSystemParametersInfo_Params ( void  )

Definition at line 120 of file NtUserSystemParametersInfo.c.

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}
UINT32 uint
Definition: types.h:83
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define SetLastError(x)
Definition: compat.h:752
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
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 TEST(x)
Definition: precomp.h:20
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
unsigned int UINT
Definition: ndis.h:50
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define ERROR_NOACCESS
Definition: winerror.h:578

Referenced by START_TEST().

◆ Test_NtUserSystemParametersInfo_Winsta()

void Test_NtUserSystemParametersInfo_Winsta ( void  )

Definition at line 324 of file NtUserSystemParametersInfo.c.

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}
#define ERROR_ACCESS_DENIED
Definition: compat.h:97
unsigned int BOOL
Definition: ntddk_ex.h:94
#define printf
Definition: freeldr.h:97
#define READ_CONTROL
Definition: nt_native.h:58
int32_t INT
Definition: typedefs.h:58
HWINSTA WINAPI GetProcessWindowStation(void)
Definition: ntwrapper.h:124
#define ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION
Definition: winerror.h:940
#define SPI_SETBORDER
Definition: winuser.h:1358
#define SPI_GETBORDER
Definition: winuser.h:1357
#define SPI_SETBEEP
Definition: winuser.h:1354
BOOL WINAPI SetProcessWindowStation(_In_ HWINSTA)
#define SPI_GETMOUSE
Definition: winuser.h:1355
#define SPI_SETKEYBOARDSPEED
Definition: winuser.h:1360
#define SPI_GETKEYBOARDSPEED
Definition: winuser.h:1359
BOOL WINAPI SystemParametersInfoA(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define SPI_ICONHORIZONTALSPACING
Definition: winuser.h:1362
#define SPI_GETBEEP
Definition: winuser.h:1353
#define SPI_SETMOUSE
Definition: winuser.h:1356
#define CreateWindowStation
Definition: winuser.h:5765
#define SPI_SETSCREENSAVETIMEOUT
Definition: winuser.h:1364
#define SPI_GETSCREENSAVETIMEOUT
Definition: winuser.h:1363

Referenced by START_TEST().

◆ Test_SPI_SETACCESSTIMEOUT()

void Test_SPI_SETACCESSTIMEOUT ( void  )

Definition at line 925 of file NtUserSystemParametersInfo.c.

926{
927 ACCESSTIMEOUT atoOrig, atoTmp;
928
929 /* Get original values */
930 atoOrig.cbSize = sizeof(ACCESSTIMEOUT);
932
933 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) - 1;
935 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) + 1;
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 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
949
950 /* Restore original values */
951 ASSERT(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0) == 1);
952}
struct tagACCESSTIMEOUT ACCESSTIMEOUT

Referenced by START_TEST().

◆ Test_SPI_SETBEEP()

void Test_SPI_SETBEEP ( void  )

Definition at line 464 of file NtUserSystemParametersInfo.c.

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}
static const WCHAR * VAL_BEEP
static const WCHAR * KEY_SOUND
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1571

Referenced by START_TEST().

◆ Test_SPI_SETBORDER()

void Test_SPI_SETBORDER ( void  )

Definition at line 537 of file NtUserSystemParametersInfo.c.

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}
#define SM_CXBORDER
Definition: winuser.h:964
int WINAPI GetSystemMetrics(_In_ int)

Referenced by START_TEST().

◆ Test_SPI_SETDESKWALLPAPER()

void Test_SPI_SETDESKWALLPAPER ( void  )

Definition at line 575 of file NtUserSystemParametersInfo.c.

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#if 0 // This is broken
603 RtlInitUnicodeString(&ustrNew, L"test.bmp");
606 TEST(wcscmp(szNew, L"test.bmp") == 0);
607#endif
608
609 /* Get Wallpaper, too small buffer */
610 szNew[0] = 0; szNew[1] = 0; szNew[2] = 0;
612 TEST(szNew[0] != 0);
613 TEST(szNew[1] != 0);
614 TEST(szNew[2] != 0);
615
616 /* Set invalid Wallpaper */
617 SetLastError(0xdeadbeef);
618 RtlInitUnicodeString(&ustrNew, L"*#!!-&");
622 TEST(wcscmp(szNew, L"*#!!-&") == 0);
623
624 /* Restore old Wallpaper */
626
627}
#define MAX_PATH
Definition: compat.h:34
#define ERROR_FILE_NOT_FOUND
Definition: disk.h:79
#define SPI_GETDESKWALLPAPER
Definition: sysparams.c:34
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_Check_return_ _CRTIMP int __cdecl wcscmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
#define SPI_SETDESKWALLPAPER
Definition: winuser.h:1369

Referenced by START_TEST().

◆ Test_SPI_SETDRAGFULLWINDOWS()

void Test_SPI_SETDRAGFULLWINDOWS ( void  )

Definition at line 736 of file NtUserSystemParametersInfo.c.

737{
738
739}

Referenced by START_TEST().

◆ Test_SPI_SETFASTTASKSWITCH()

void Test_SPI_SETFASTTASKSWITCH ( void  )

Definition at line 726 of file NtUserSystemParametersInfo.c.

727{
728 char buf[10];
731
732
733}
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define SPI_SETFASTTASKSWITCH
Definition: winuser.h:1385

Referenced by START_TEST().

◆ Test_SPI_SETFILTERKEYS()

void Test_SPI_SETFILTERKEYS ( void  )

Definition at line 863 of file NtUserSystemParametersInfo.c.

864{
865
866}

Referenced by START_TEST().

◆ Test_SPI_SETHIGHCONTRAST()

void Test_SPI_SETHIGHCONTRAST ( void  )

Definition at line 967 of file NtUserSystemParametersInfo.c.

968{
969
970}

Referenced by START_TEST().

◆ Test_SPI_SETICONMETRICS()

void Test_SPI_SETICONMETRICS ( void  )

Definition at line 782 of file NtUserSystemParametersInfo.c.

783{
784 ICONMETRICSW metrics;
785 ICONMETRICSW origMetrics;
786
787 metrics.cbSize = sizeof(ICONMETRICSW);
788 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)&metrics, 0) == 1);
789 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
790
791 origMetrics = metrics;
792
793 metrics.cbSize = sizeof(ICONMETRICSW) + 10;
794 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
795 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
796 ok(metrics.cbSize == sizeof(ICONMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(ICONMETRICSW), (ULONG)metrics.cbSize);
797
798 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
799}
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
Definition: glext.h:11745
uint32_t ULONG
Definition: typedefs.h:59

Referenced by START_TEST().

◆ Test_SPI_SETICONTITLELOGFONT()

void Test_SPI_SETICONTITLELOGFONT ( void  )

Definition at line 687 of file NtUserSystemParametersInfo.c.

688{
689 LOGFONTW lfOrig;
690 struct
691 {
692 LOGFONTW lf;
693 DWORD dwRedzone;
694 } buf;
695
696 /* Get original value */
697 ASSERT(NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lfOrig), &lfOrig, 0));
698
699 /* Test uiParam == 0 */
700 memset(&buf, 0, sizeof(buf));
701 buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
702 buf.dwRedzone = 0xdeadbeef;
704 TEST(buf.lf.lfHeight != 0);
705 TEST(buf.lf.lfWeight != 0);
706 TEST(buf.lf.lfFaceName[0] != 0);
707 TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
708 TEST(buf.dwRedzone == 0xdeadbeef);
709
710 /* Test uiParam < sizeof(LOGFONTW) */
711 memset(&buf, 0, sizeof(buf));
712 buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
713 buf.dwRedzone = 0xdeadbeef;
715 TEST(buf.lf.lfHeight != 0);
716 TEST(buf.lf.lfWeight != 0);
717 TEST(buf.lf.lfFaceName[0] != 0);
718 TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
719 TEST(buf.dwRedzone == 0xdeadbeef);
720
721 /* Test uiParam < 0 */
723}
#define LF_FACESIZE
Definition: dimm.idl:39
#define memset(x, y, z)
Definition: compat.h:39
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1380

Referenced by START_TEST().

◆ Test_SPI_SETKEYBOARDCUES()

void Test_SPI_SETKEYBOARDCUES ( void  )

Definition at line 1045 of file NtUserSystemParametersInfo.c.

1046{
1047 Test_UserPref(SPI_GETKEYBOARDCUES, SPI_SETKEYBOARDCUES, UPM_KEYBOARDCUES);
1048}
void Test_UserPref(UINT uiGet, UINT uiSet, DWORD dwPrefMask)

Referenced by START_TEST().

◆ Test_SPI_SETKEYBOARDPREF()

void Test_SPI_SETKEYBOARDPREF ( void  )

Definition at line 973 of file NtUserSystemParametersInfo.c.

974{
975
976}

Referenced by START_TEST().

◆ Test_SPI_SETMENUANIMATION()

void Test_SPI_SETMENUANIMATION ( void  )

Test_SPI_SETANIMATION();.

Definition at line 1010 of file NtUserSystemParametersInfo.c.

1011{
1012 BOOL bOrig, bTemp = 0;
1013 DWORD dwUserPrefMask;
1014 DWORD cbSize;
1015
1016 /* Get original values */
1017 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bOrig, 0);
1018
1019 /* Value 0 */
1020 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, NULL, SPIF_UPDATEINIFILE);
1021 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1022 TEST(bTemp == 0);
1023 cbSize = sizeof(dwUserPrefMask);
1024 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1025 TEST((dwUserPrefMask & UPM_MENUANIMATION) == 0);
1026
1027 /* Value 1 */
1028 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)1, SPIF_UPDATEINIFILE);
1029 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1030 TEST(bTemp == 1);
1031 cbSize = sizeof(dwUserPrefMask);
1032 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1033 TEST((dwUserPrefMask & UPM_MENUANIMATION) != 0);
1034
1035
1036 /* Restore original values */
1037 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)(ULONG_PTR)bOrig, SPIF_UPDATEINIFILE);
1038}
static const WCHAR * KEY_DESKTOP
static const WCHAR * VAL_PREFMASK
uint32_t ULONG_PTR
Definition: typedefs.h:65

Referenced by START_TEST().

◆ Test_SPI_SETMINIMIZEDMETRICS()

void Test_SPI_SETMINIMIZEDMETRICS ( void  )

Definition at line 762 of file NtUserSystemParametersInfo.c.

763{
765 MINIMIZEDMETRICS origMetrics;
766
768 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)&metrics, 0) == 1);
769 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
770
771 origMetrics = metrics;
772
773 metrics.cbSize = sizeof(MINIMIZEDMETRICS) + 10;
774 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
775 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
776 ok(metrics.cbSize == sizeof(MINIMIZEDMETRICS), "Expected size: %lu, got %lu\n", (ULONG)sizeof(MINIMIZEDMETRICS), (ULONG)metrics.cbSize);
777
778 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
779}
struct tagMINIMIZEDMETRICS MINIMIZEDMETRICS

Referenced by START_TEST().

◆ Test_SPI_SETMOUSE()

void Test_SPI_SETMOUSE ( void  )

Definition at line 502 of file NtUserSystemParametersInfo.c.

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}

Referenced by START_TEST().

◆ Test_SPI_SETMOUSEBUTTONSWAP()

void Test_SPI_SETMOUSEBUTTONSWAP ( void  )

Definition at line 639 of file NtUserSystemParametersInfo.c.

640{
641 BOOL bOrig, bTemp = 0;
642 WCHAR szReg[10];
643 DWORD cbSize;
644
645 /* Get original value */
647
648 /* Value 0 */
651 TEST(bTemp == 0);
652 cbSize = sizeof(szReg);
654 TEST(_wcsicmp(szReg, L"0") == 0);
655
656 /* Value 1 */
659 TEST(bTemp == 1);
660 cbSize = sizeof(szReg);
662 TEST(_wcsicmp(szReg, L"1") == 0);
663
664 /* Value 2 */
667 TEST(bTemp == 1);
668 cbSize = sizeof(szReg);
670 TEST(_wcsicmp(szReg, L"2") == 0);
671
672 /* Value -1 */
675 TEST(bTemp == 1);
676 cbSize = sizeof(szReg);
678 TEST(_wcsicmp(szReg, L"-1") == 0);
679
680 /* Restore original value */
682
683
684}
static const WCHAR * KEY_MOUSE
static const WCHAR * VAL_SWAP
#define SPI_SETMOUSEBUTTONSWAP
Definition: winuser.h:1382
#define SM_SWAPBUTTON
Definition: winuser.h:984

Referenced by START_TEST().

◆ Test_SPI_SETMOUSECLICKLOCK()

void Test_SPI_SETMOUSECLICKLOCK ( void  )

Definition at line 1060 of file NtUserSystemParametersInfo.c.

1061{
1062 Test_UserPref(SPI_GETMOUSECLICKLOCK, SPI_SETMOUSECLICKLOCK, UPM_CLICKLOCK);
1063}

Referenced by START_TEST().

◆ Test_SPI_SETMOUSEKEYS()

void Test_SPI_SETMOUSEKEYS ( void  )

Definition at line 875 of file NtUserSystemParametersInfo.c.

876{
877
878}

Referenced by START_TEST().

◆ Test_SPI_SETNONCLIENTMETRICS()

void Test_SPI_SETNONCLIENTMETRICS ( void  )

Definition at line 742 of file NtUserSystemParametersInfo.c.

743{
744 NONCLIENTMETRICSW metrics;
745 NONCLIENTMETRICSW origMetrics;
746
747 metrics.cbSize = sizeof(NONCLIENTMETRICSW);
748 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &metrics, 0) == 1);
749 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
750
751 origMetrics = metrics;
752
753 metrics.cbSize = sizeof(NONCLIENTMETRICSW) + 10;
754 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
755 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
756 ok(metrics.cbSize == sizeof(NONCLIENTMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(NONCLIENTMETRICSW), (ULONG)metrics.cbSize);
757
758 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
759}

Referenced by START_TEST().

◆ Test_SPI_SETPENWINDOWS()

void Test_SPI_SETPENWINDOWS ( void  )

Definition at line 857 of file NtUserSystemParametersInfo.c.

858{
859
860}

Referenced by START_TEST().

◆ Test_SPI_SETSERIALKEYS()

void Test_SPI_SETSERIALKEYS ( void  )

Definition at line 955 of file NtUserSystemParametersInfo.c.

956{
957
958}

Referenced by START_TEST().

◆ Test_SPI_SETSHOWSOUNDS()

void Test_SPI_SETSHOWSOUNDS ( void  )

Definition at line 881 of file NtUserSystemParametersInfo.c.

882{
883
884}

Referenced by START_TEST().

◆ Test_SPI_SETSOUNDSENTRY()

void Test_SPI_SETSOUNDSENTRY ( void  )

Definition at line 961 of file NtUserSystemParametersInfo.c.

962{
963
964}

Referenced by START_TEST().

◆ Test_SPI_SETSTICKYKEYS()

void Test_SPI_SETSTICKYKEYS ( void  )

Definition at line 887 of file NtUserSystemParametersInfo.c.

888{
889 STICKYKEYS skOrig, sk;
890
891 /* Get original values */
892 skOrig.cbSize = sizeof(STICKYKEYS);
894
895 sk.cbSize = sizeof(STICKYKEYS)+1;
897
898 sk.cbSize = sizeof(STICKYKEYS)-1;
900
901 sk.cbSize = sizeof(STICKYKEYS);
907
908 sk = skOrig;
909 sk.dwFlags = (skOrig.dwFlags ^ 1);
913
914 sk = skOrig;
916 TEST(sk.dwFlags == (skOrig.dwFlags ^ 1));
917
918 /* Restore original values */
919 skOrig.cbSize = sizeof(STICKYKEYS);
921
922}
DWORD dwFlags
Definition: winuser.h:3530
DWORD cbSize
Definition: winuser.h:3529
#define SPI_SETSTICKYKEYS
Definition: winuser.h:1408
struct tagSTICKYKEYS STICKYKEYS
#define SPI_GETSTICKYKEYS
Definition: winuser.h:1407

Referenced by START_TEST().

◆ Test_SPI_SETTOGGLEKEYS()

void Test_SPI_SETTOGGLEKEYS ( void  )

Definition at line 869 of file NtUserSystemParametersInfo.c.

870{
871
872}

Referenced by START_TEST().

◆ Test_SPI_SETWORKAREA()

void Test_SPI_SETWORKAREA ( void  )

Definition at line 802 of file NtUserSystemParametersInfo.c.

803{
804 RECT rcOrig, rc;
805
806 /* Get the original value */
807 ASSERT(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, &rcOrig, 0) == 1);
808
809 /* Change value */
810 rc = rcOrig;
811 rc.left += 1;
812 rc.top += 2;
813 rc.right -= 3;
814 rc.bottom -= 2;
815 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 1, &rc, 0) == 1);
816 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
817 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, sizeof(RECT), &rc, 0) == 1);
818
819 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 1, &rc, 0) == 1);
820 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, -1, &rc, 0) == 1);
821 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0xdeadbeef, &rc, 0) == 1);
822 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
823
824 /* Test values */
825 rc = rcOrig; rc.left = -1;
826 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
827 rc = rcOrig; rc.top = -1;
828 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
829 rc = rcOrig; rc.top = 10; rc.bottom = 11;
830 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
831 rc = rcOrig; rc.top = 10; rc.bottom = 10;
832 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
833 rc = rcOrig; rc.top = 10; rc.bottom = 9;
834 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
835 rc = rcOrig; rc.left = 10; rc.right = 11;
836 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
837 rc = rcOrig; rc.left = 10; rc.right = 10;
838 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
839 rc = rcOrig; rc.left = 10; rc.right = 9;
840 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
841 rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN);
842 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
843 rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN)+1;
844 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
845 rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN);
846 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
847 rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN)+1;
848 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
849
850 /* Restore original value */
851 ASSERT(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rcOrig, 0) == 1);
852
853
854}
LONG right
Definition: windef.h:308
LONG bottom
Definition: windef.h:309
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
#define SM_CYVIRTUALSCREEN
Definition: winuser.h:1039
#define SM_CXVIRTUALSCREEN
Definition: winuser.h:1038

Referenced by START_TEST().

◆ Test_UserPref()

void Test_UserPref ( UINT  uiGet,
UINT  uiSet,
DWORD  dwPrefMask 
)

Definition at line 407 of file NtUserSystemParametersInfo.c.

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}

Referenced by Test_SPI_SETKEYBOARDCUES(), and Test_SPI_SETMOUSECLICKLOCK().

Variable Documentation

◆ KEY_DESKTOP

const WCHAR* KEY_DESKTOP = L"Control Panel\\Desktop"
static

Definition at line 21 of file NtUserSystemParametersInfo.c.

Referenced by Test_SPI_SETMENUANIMATION(), and Test_UserPref().

◆ KEY_METRIC

const WCHAR* KEY_METRIC = L"Control Panel\\Desktop\\WindowMetrics"
static

Definition at line 57 of file NtUserSystemParametersInfo.c.

Referenced by Test_MetricKey().

◆ KEY_MOUSE

const WCHAR* KEY_MOUSE = L"Control Panel\\Mouse"
static

Definition at line 12 of file NtUserSystemParametersInfo.c.

Referenced by Test_SPI_SETMOUSEBUTTONSWAP().

◆ KEY_SOUND

const WCHAR* KEY_SOUND = L"Control Panel\\Sound"
static

Definition at line 63 of file NtUserSystemParametersInfo.c.

Referenced by Test_SPI_SETBEEP().

◆ 

enum { ... } USERPREFMASKS

◆ VAL_BEEP

const WCHAR* VAL_BEEP = L"Beep"
static

Definition at line 64 of file NtUserSystemParametersInfo.c.

Referenced by Test_SPI_SETBEEP().

◆ VAL_PREFMASK

const WCHAR* VAL_PREFMASK = L"UserPreferencesMask"
static

Definition at line 29 of file NtUserSystemParametersInfo.c.

Referenced by Test_SPI_SETMENUANIMATION(), and Test_UserPref().

◆ VAL_SWAP

const WCHAR* VAL_SWAP = L"SwapMouseButtons"
static

Definition at line 19 of file NtUserSystemParametersInfo.c.

Referenced by Test_SPI_SETMOUSEBUTTONSWAP().