ReactOS 0.4.16-dev-188-g678aa63
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 @1608 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:3173
HICON hIcon
Definition: winuser.h:3171
HINSTANCE hInstance
Definition: winuser.h:3170
HCURSOR hCursor
Definition: winuser.h:3172
int cbWndExtra
Definition: winuser.h:3169
UINT style
Definition: winuser.h:3166
LPCSTR lpszMenuName
Definition: winuser.h:3174
LPCSTR lpszClassName
Definition: winuser.h:3175
WNDPROC lpfnWndProc
Definition: winuser.h:3167
int cbClsExtra
Definition: winuser.h:3168
#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:4318
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 1090 of file NtUserSystemParametersInfo.c.

1091{
1092 HWND hWnd;
1093
1095 ASSERT(hWnd);
1096
1100
1104// Test_SPI_SETKEYBOARDSPEED();
1105// Test_SPI_LANGDRIVER();
1106// Test_SPI_ICONHORIZONTALSPACING();
1107// Test_SPI_SETSCREENSAVETIMEOUT();
1108// Test_SPI_SETSCREENSAVEACTIVE();
1109// Test_SPI_SETGRIDGRANULARITY();
1111// Test_SPI_SETDESKPATTERN();
1112// Test_SPI_SETKEYBOARDDELAY();
1113// Test_SPI_ICONVERTICALSPACING();
1114// Test_SPI_SETICONTITLEWRAP();
1115// Test_SPI_SETMENUDROPALIGNMENT();
1116// Test_SPI_SETDOUBLECLKWIDTH();
1117// Test_SPI_SETDOUBLECLKHEIGHT();
1118// Test_SPI_SETDOUBLECLICKTIME();
1138// Test_SPI_SETSCREENREADER();
1140// Test_SPI_SETFONTSMOOTHING();
1141// Test_SPI_SETDRAGWIDTH();
1142// Test_SPI_SETDRAGHEIGHT();
1143// Test_SPI_SETHANDHELD();
1144// Test_SPI_SETLOWPOWERTIMEOUT();
1145// Test_SPI_SETPOWEROFFTIMEOUT();
1146// Test_SPI_SETLOWPOWERACTIVE();
1147// Test_SPI_SETPOWEROFFACTIVE();
1148// Test_SPI_SETCURSORS();
1149// Test_SPI_SETICONS();
1150// Test_SPI_SETDEFAULTINPUTLANG();
1151// Test_SPI_SETLANGTOGGLE();
1152// Test_SPI_GETWINDOWSEXTENSION();
1153// Test_SPI_SETMOUSETRAILS();
1154// Test_SPI_SETSNAPTODEFBUTTON();
1155// Test_SPI_GETSCREENSAVERRUNNING();
1156// Test_SPI_SETMOUSEHOVERWIDTH();
1157// Test_SPI_SETMOUSEHOVERHEIGHT();
1158// Test_SPI_SETMOUSEHOVERTIME();
1159// Test_SPI_SETWHEELSCROLLLINES();
1160// Test_SPI_SETMENUSHOWDELAY();
1161// Test_SPI_SETWHEELSCROLLCHARS();
1162// Test_SPI_SETSHOWIMEUI();
1163// Test_SPI_SETMOUSESPEED();
1164// Test_SPI_GETSCREENSAVERRUNNING();
1165// Test_SPI_SETAUDIODESCRIPTION();
1166// Test_SPI_SETSCREENSAVESECURE();
1167// Test_SPI_SETACTIVEWINDOWTRACKING();
1169// Test_SPI_SETCOMBOBOXANIMATION();
1170// Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1171// Test_SPI_SETGRADIENTCAPTIONS();
1173// Test_SPI_SETACTIVEWNDTRKZORDER();
1174// Test_SPI_SETHOTTRACKING();
1175// Test_SPI_SETMENUFADE();
1176// Test_SPI_SETSELECTIONFADE();
1177// Test_SPI_SETTOOLTIPANIMATION();
1178// Test_SPI_SETTOOLTIPFADE();
1179// Test_SPI_SETCURSORSHADOW();
1180// Test_SPI_SETMOUSESONAR();
1182// Test_SPI_SETMOUSEVANISH();
1183// Test_SPI_SETFLATMENU();
1184// Test_SPI_SETDROPSHADOW();
1185// Test_SPI_SETBLOCKSENDINPUTRESETS();
1186// Test_SPI_GETSETUIEFFECTS();
1187// Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1188// Test_SPI_SETCLIENTAREAANIMATION();
1189// Test_SPI_SETCLEARTYPE();
1190// Test_SPI_SETSPEECHRECOGNITION();
1191// Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1192// Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1193// Test_SPI_SETFOREGROUNDFLASHCOUNT();
1194// Test_SPI_SETCARETWIDTH();
1195// Test_SPI_SETMOUSECLICKLOCKTIME();
1196// Test_SPI_SETFONTSMOOTHINGTYPE();
1197// Test_SPI_SETFONTSMOOTHINGCONTRAST();
1198// Test_SPI_SETFOCUSBORDERWIDTH();
1199// Test_SPI_SETFOCUSBORDERHEIGHT();
1200// Test_SPI_SETFONTSMOOTHINGORIENTATION();
1201
1203}
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:2934
#define SPI_GETACCESSTIMEOUT
Definition: winuser.h:1412
#define SPI_SETACCESSTIMEOUT
Definition: winuser.h:1413

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:1361
#define SPI_GETBORDER
Definition: winuser.h:1360
#define SPI_SETBEEP
Definition: winuser.h:1357
BOOL WINAPI SetProcessWindowStation(_In_ HWINSTA)
#define SPI_GETMOUSE
Definition: winuser.h:1358
#define SPI_SETKEYBOARDSPEED
Definition: winuser.h:1363
#define SPI_GETKEYBOARDSPEED
Definition: winuser.h:1362
BOOL WINAPI SystemParametersInfoA(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define SPI_ICONHORIZONTALSPACING
Definition: winuser.h:1365
#define SPI_GETBEEP
Definition: winuser.h:1356
#define SPI_SETMOUSE
Definition: winuser.h:1359
#define CreateWindowStation
Definition: winuser.h:5768
#define SPI_SETSCREENSAVETIMEOUT
Definition: winuser.h:1367
#define SPI_GETSCREENSAVETIMEOUT
Definition: winuser.h:1366

Referenced by START_TEST().

◆ Test_SPI_SETACCESSTIMEOUT()

void Test_SPI_SETACCESSTIMEOUT ( void  )

Definition at line 929 of file NtUserSystemParametersInfo.c.

930{
931 ACCESSTIMEOUT atoOrig, atoTmp;
932
933 /* Get original values */
934 atoOrig.cbSize = sizeof(ACCESSTIMEOUT);
936
937 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) - 1;
939 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) + 1;
941 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
943 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
945 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
947 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
949 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
951 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
953
954 /* Restore original values */
955 ASSERT(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0) == 1);
956}
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:1574

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:967
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 */
586#ifndef _M_AMD64
588#endif
590 TEST(szNew[0] == 0);
591
592 /* Set no Wallpaper 2 */
593 RtlInitUnicodeString(&ustrNew, L"");
596 TEST(szNew[0] == 0);
597
598 /* Reset Wallpaper */
601 TEST(wcscmp(szNew, szOld) == 0);
602
603 /* Set new Wallpaper */
604#if 0 // This is broken
605 RtlInitUnicodeString(&ustrNew, L"test.bmp");
608 TEST(wcscmp(szNew, L"test.bmp") == 0);
609#endif
610
611 /* Get Wallpaper, too small buffer */
612 szNew[0] = 0; szNew[1] = 0; szNew[2] = 0;
614#if 0 // This is broken
615 TEST(szNew[0] != 0);
616 TEST(szNew[1] != 0);
617 TEST(szNew[2] != 0);
618#endif
619
620 /* Set invalid Wallpaper */
621 SetLastError(0xdeadbeef);
622 RtlInitUnicodeString(&ustrNew, L"*#!!-&");
626 TEST(wcscmp(szNew, L"*#!!-&") == 0);
627
628 /* Restore old Wallpaper */
630
631}
#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:1372

Referenced by START_TEST().

◆ Test_SPI_SETDRAGFULLWINDOWS()

void Test_SPI_SETDRAGFULLWINDOWS ( void  )

Definition at line 740 of file NtUserSystemParametersInfo.c.

741{
742
743}

Referenced by START_TEST().

◆ Test_SPI_SETFASTTASKSWITCH()

void Test_SPI_SETFASTTASKSWITCH ( void  )

Definition at line 730 of file NtUserSystemParametersInfo.c.

731{
732 char buf[10];
735
736
737}
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define SPI_SETFASTTASKSWITCH
Definition: winuser.h:1388

Referenced by START_TEST().

◆ Test_SPI_SETFILTERKEYS()

void Test_SPI_SETFILTERKEYS ( void  )

Definition at line 867 of file NtUserSystemParametersInfo.c.

868{
869
870}

Referenced by START_TEST().

◆ Test_SPI_SETHIGHCONTRAST()

void Test_SPI_SETHIGHCONTRAST ( void  )

Definition at line 971 of file NtUserSystemParametersInfo.c.

972{
973
974}

Referenced by START_TEST().

◆ Test_SPI_SETICONMETRICS()

void Test_SPI_SETICONMETRICS ( void  )

Definition at line 786 of file NtUserSystemParametersInfo.c.

787{
788 ICONMETRICSW metrics;
789 ICONMETRICSW origMetrics;
790
791 metrics.cbSize = sizeof(ICONMETRICSW);
792 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)&metrics, 0) == 1);
793 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
794
795 origMetrics = metrics;
796
797 metrics.cbSize = sizeof(ICONMETRICSW) + 10;
798 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
799 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
800 ok(metrics.cbSize == sizeof(ICONMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(ICONMETRICSW), (ULONG)metrics.cbSize);
801
802 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
803}
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 691 of file NtUserSystemParametersInfo.c.

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

Referenced by START_TEST().

◆ Test_SPI_SETKEYBOARDCUES()

void Test_SPI_SETKEYBOARDCUES ( void  )

Definition at line 1049 of file NtUserSystemParametersInfo.c.

1050{
1051 Test_UserPref(SPI_GETKEYBOARDCUES, SPI_SETKEYBOARDCUES, UPM_KEYBOARDCUES);
1052}
void Test_UserPref(UINT uiGet, UINT uiSet, DWORD dwPrefMask)

Referenced by START_TEST().

◆ Test_SPI_SETKEYBOARDPREF()

void Test_SPI_SETKEYBOARDPREF ( void  )

Definition at line 977 of file NtUserSystemParametersInfo.c.

978{
979
980}

Referenced by START_TEST().

◆ Test_SPI_SETMENUANIMATION()

void Test_SPI_SETMENUANIMATION ( void  )

Test_SPI_SETANIMATION();.

Definition at line 1014 of file NtUserSystemParametersInfo.c.

1015{
1016 BOOL bOrig, bTemp = 0;
1017 DWORD dwUserPrefMask;
1018 DWORD cbSize;
1019
1020 /* Get original values */
1021 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bOrig, 0);
1022
1023 /* Value 0 */
1024 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, NULL, SPIF_UPDATEINIFILE);
1025 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1026 TEST(bTemp == 0);
1027 cbSize = sizeof(dwUserPrefMask);
1028 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1029 TEST((dwUserPrefMask & UPM_MENUANIMATION) == 0);
1030
1031 /* Value 1 */
1032 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)1, SPIF_UPDATEINIFILE);
1033 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1034 TEST(bTemp == 1);
1035 cbSize = sizeof(dwUserPrefMask);
1036 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1037 TEST((dwUserPrefMask & UPM_MENUANIMATION) != 0);
1038
1039
1040 /* Restore original values */
1041 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)(ULONG_PTR)bOrig, SPIF_UPDATEINIFILE);
1042}
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 766 of file NtUserSystemParametersInfo.c.

767{
769 MINIMIZEDMETRICS origMetrics;
770
772 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)&metrics, 0) == 1);
773 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
774
775 origMetrics = metrics;
776
777 metrics.cbSize = sizeof(MINIMIZEDMETRICS) + 10;
778 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
779 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
780 ok(metrics.cbSize == sizeof(MINIMIZEDMETRICS), "Expected size: %lu, got %lu\n", (ULONG)sizeof(MINIMIZEDMETRICS), (ULONG)metrics.cbSize);
781
782 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
783}
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 643 of file NtUserSystemParametersInfo.c.

644{
645 BOOL bOrig, bTemp = 0;
646 WCHAR szReg[10];
647 DWORD cbSize;
648
649 /* Get original value */
651
652 /* Value 0 */
655 TEST(bTemp == 0);
656 cbSize = sizeof(szReg);
658 TEST(_wcsicmp(szReg, L"0") == 0);
659
660 /* Value 1 */
663 TEST(bTemp == 1);
664 cbSize = sizeof(szReg);
666 TEST(_wcsicmp(szReg, L"1") == 0);
667
668 /* Value 2 */
671 TEST(bTemp == 1);
672 cbSize = sizeof(szReg);
674 TEST(_wcsicmp(szReg, L"2") == 0);
675
676 /* Value -1 */
679 TEST(bTemp == 1);
680 cbSize = sizeof(szReg);
682 TEST(_wcsicmp(szReg, L"-1") == 0);
683
684 /* Restore original value */
686
687
688}
static const WCHAR * KEY_MOUSE
static const WCHAR * VAL_SWAP
#define SPI_SETMOUSEBUTTONSWAP
Definition: winuser.h:1385
#define SM_SWAPBUTTON
Definition: winuser.h:987

Referenced by START_TEST().

◆ Test_SPI_SETMOUSECLICKLOCK()

void Test_SPI_SETMOUSECLICKLOCK ( void  )

Definition at line 1064 of file NtUserSystemParametersInfo.c.

1065{
1066 Test_UserPref(SPI_GETMOUSECLICKLOCK, SPI_SETMOUSECLICKLOCK, UPM_CLICKLOCK);
1067}

Referenced by START_TEST().

◆ Test_SPI_SETMOUSEKEYS()

void Test_SPI_SETMOUSEKEYS ( void  )

Definition at line 879 of file NtUserSystemParametersInfo.c.

880{
881
882}

Referenced by START_TEST().

◆ Test_SPI_SETNONCLIENTMETRICS()

void Test_SPI_SETNONCLIENTMETRICS ( void  )

Definition at line 746 of file NtUserSystemParametersInfo.c.

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

Referenced by START_TEST().

◆ Test_SPI_SETPENWINDOWS()

void Test_SPI_SETPENWINDOWS ( void  )

Definition at line 861 of file NtUserSystemParametersInfo.c.

862{
863
864}

Referenced by START_TEST().

◆ Test_SPI_SETSERIALKEYS()

void Test_SPI_SETSERIALKEYS ( void  )

Definition at line 959 of file NtUserSystemParametersInfo.c.

960{
961
962}

Referenced by START_TEST().

◆ Test_SPI_SETSHOWSOUNDS()

void Test_SPI_SETSHOWSOUNDS ( void  )

Definition at line 885 of file NtUserSystemParametersInfo.c.

886{
887
888}

Referenced by START_TEST().

◆ Test_SPI_SETSOUNDSENTRY()

void Test_SPI_SETSOUNDSENTRY ( void  )

Definition at line 965 of file NtUserSystemParametersInfo.c.

966{
967
968}

Referenced by START_TEST().

◆ Test_SPI_SETSTICKYKEYS()

void Test_SPI_SETSTICKYKEYS ( void  )

Definition at line 891 of file NtUserSystemParametersInfo.c.

892{
893 STICKYKEYS skOrig, sk;
894
895 /* Get original values */
896 skOrig.cbSize = sizeof(STICKYKEYS);
898
899 sk.cbSize = sizeof(STICKYKEYS)+1;
901
902 sk.cbSize = sizeof(STICKYKEYS)-1;
904
905 sk.cbSize = sizeof(STICKYKEYS);
911
912 sk = skOrig;
913 sk.dwFlags = (skOrig.dwFlags ^ 1);
917
918 sk = skOrig;
920 TEST(sk.dwFlags == (skOrig.dwFlags ^ 1));
921
922 /* Restore original values */
923 skOrig.cbSize = sizeof(STICKYKEYS);
925
926}
DWORD dwFlags
Definition: winuser.h:3533
DWORD cbSize
Definition: winuser.h:3532
#define SPI_SETSTICKYKEYS
Definition: winuser.h:1411
struct tagSTICKYKEYS STICKYKEYS
#define SPI_GETSTICKYKEYS
Definition: winuser.h:1410

Referenced by START_TEST().

◆ Test_SPI_SETTOGGLEKEYS()

void Test_SPI_SETTOGGLEKEYS ( void  )

Definition at line 873 of file NtUserSystemParametersInfo.c.

874{
875
876}

Referenced by START_TEST().

◆ Test_SPI_SETWORKAREA()

void Test_SPI_SETWORKAREA ( void  )

Definition at line 806 of file NtUserSystemParametersInfo.c.

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

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().