ReactOS 0.4.16-dev-2110-ge3521eb
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
@ UPM_TOOLTIPANIMATION
@ UPM_COMBOBOXANIMATION
@ UPM_ACTIVEWINDOWTRACKING
@ UPM_GRADIENTCAPTIONS
@ UPM_LISTBOXSMOOTHSCROLLING
@ UPM_ACTIVEWNDTRKZORDER
enum @1745 USERPREFMASKS

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:3272
HICON hIcon
Definition: winuser.h:3270
HINSTANCE hInstance
Definition: winuser.h:3269
HCURSOR hCursor
Definition: winuser.h:3271
int cbWndExtra
Definition: winuser.h:3268
UINT style
Definition: winuser.h:3265
LPCSTR lpszMenuName
Definition: winuser.h:3273
LPCSTR lpszClassName
Definition: winuser.h:3274
WNDPROC lpfnWndProc
Definition: winuser.h:3266
int cbClsExtra
Definition: winuser.h:3267
#define GetModuleHandle
Definition: winbase.h:3576
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:4417
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
return ret
Definition: mutex.c:146
FxAutoRegKey hKey
#define KEY_QUERY_VALUE
Definition: nt_native.h:1019
long LONG
Definition: pedump.c:60
_In_opt_ LPCSTR pszSubKey
Definition: shlwapi.h:783
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
unsigned char * LPBYTE
Definition: typedefs.h:53
#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 1139 of file NtUserSystemParametersInfo.c.

1140{
1141 HWND hWnd;
1142
1144 ok(hWnd != NULL, "CreateTestWindow failed\n");
1145 if (!hWnd)
1146 {
1147 skip("Could not create test window\n");
1148 return;
1149 }
1150
1154
1158// Test_SPI_SETKEYBOARDSPEED();
1159// Test_SPI_LANGDRIVER();
1160// Test_SPI_ICONHORIZONTALSPACING();
1161// Test_SPI_SETSCREENSAVETIMEOUT();
1162// Test_SPI_SETSCREENSAVEACTIVE();
1163// Test_SPI_SETGRIDGRANULARITY();
1164// Test_SPI_SETDESKWALLPAPER();
1165// Test_SPI_SETDESKPATTERN();
1166// Test_SPI_SETKEYBOARDDELAY();
1167// Test_SPI_ICONVERTICALSPACING();
1168// Test_SPI_SETICONTITLEWRAP();
1169// Test_SPI_SETMENUDROPALIGNMENT();
1170// Test_SPI_SETDOUBLECLKWIDTH();
1171// Test_SPI_SETDOUBLECLKHEIGHT();
1172// Test_SPI_SETDOUBLECLICKTIME();
1173// Test_SPI_SETMOUSEBUTTONSWAP();
1175// Test_SPI_SETFASTTASKSWITCH();
1177// Test_SPI_SETNONCLIENTMETRICS();
1178// Test_SPI_SETMINIMIZEDMETRICS();
1179// Test_SPI_SETICONMETRICS();
1180// Test_SPI_SETWORKAREA(); // Messes up stuff!
1192// Test_SPI_SETSCREENREADER();
1194// Test_SPI_SETFONTSMOOTHING();
1195// Test_SPI_SETDRAGWIDTH();
1196// Test_SPI_SETDRAGHEIGHT();
1197// Test_SPI_SETHANDHELD();
1198// Test_SPI_SETLOWPOWERTIMEOUT();
1199// Test_SPI_SETPOWEROFFTIMEOUT();
1200// Test_SPI_SETLOWPOWERACTIVE();
1201// Test_SPI_SETPOWEROFFACTIVE();
1202// Test_SPI_SETCURSORS();
1203// Test_SPI_SETICONS();
1204// Test_SPI_SETDEFAULTINPUTLANG();
1205// Test_SPI_SETLANGTOGGLE();
1206// Test_SPI_GETWINDOWSEXTENSION();
1207// Test_SPI_SETMOUSETRAILS();
1208// Test_SPI_SETSNAPTODEFBUTTON();
1209// Test_SPI_GETSCREENSAVERRUNNING();
1210// Test_SPI_SETMOUSEHOVERWIDTH();
1211// Test_SPI_SETMOUSEHOVERHEIGHT();
1212// Test_SPI_SETMOUSEHOVERTIME();
1213// Test_SPI_SETWHEELSCROLLLINES();
1214// Test_SPI_SETMENUSHOWDELAY();
1215// Test_SPI_SETWHEELSCROLLCHARS();
1216// Test_SPI_SETSHOWIMEUI();
1217// Test_SPI_SETMOUSESPEED();
1218// Test_SPI_GETSCREENSAVERRUNNING();
1219// Test_SPI_SETAUDIODESCRIPTION();
1220// Test_SPI_SETSCREENSAVESECURE();
1221// Test_SPI_SETACTIVEWINDOWTRACKING();
1222// Test_SPI_SETMENUANIMATION();
1223// Test_SPI_SETCOMBOBOXANIMATION();
1224// Test_SPI_SETLISTBOXSMOOTHSCROLLING();
1225// Test_SPI_SETGRADIENTCAPTIONS();
1226// Test_SPI_SETKEYBOARDCUES();
1227// Test_SPI_SETACTIVEWNDTRKZORDER();
1228// Test_SPI_SETHOTTRACKING();
1229// Test_SPI_SETMENUFADE();
1230// Test_SPI_SETSELECTIONFADE();
1231// Test_SPI_SETTOOLTIPANIMATION();
1232// Test_SPI_SETTOOLTIPFADE();
1233// Test_SPI_SETCURSORSHADOW();
1234// Test_SPI_SETMOUSESONAR();
1235// Test_SPI_SETMOUSECLICKLOCK();
1236// Test_SPI_SETMOUSEVANISH();
1237// Test_SPI_SETFLATMENU();
1238// Test_SPI_SETDROPSHADOW();
1239// Test_SPI_SETBLOCKSENDINPUTRESETS();
1240// Test_SPI_GETSETUIEFFECTS();
1241// Test_SPI_SETDISABLEOVERLAPPEDCONTENT();
1242// Test_SPI_SETCLIENTAREAANIMATION();
1243// Test_SPI_SETCLEARTYPE();
1244// Test_SPI_SETSPEECHRECOGNITION();
1245// Test_SPI_SETFOREGROUNDLOCKTIMEOUT();
1246// Test_SPI_SETACTIVEWNDTRKTIMEOUT();
1247// Test_SPI_SETFOREGROUNDFLASHCOUNT();
1248// Test_SPI_SETCARETWIDTH();
1249// Test_SPI_SETMOUSECLICKLOCKTIME();
1250// Test_SPI_SETFONTSMOOTHINGTYPE();
1251// Test_SPI_SETFONTSMOOTHINGCONTRAST();
1252// Test_SPI_SETFOCUSBORDERWIDTH();
1253// Test_SPI_SETFOCUSBORDERHEIGHT();
1254// Test_SPI_SETFONTSMOOTHINGORIENTATION();
1255
1257}
void Test_NtUserSystemParametersInfo_Winsta(void)
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_SETBEEP(void)
void Test_SPI_SETPENWINDOWS(void)
void Test_NtUserSystemParametersInfo_fWinIni(void)
void Test_SPI_SETSOUNDSENTRY(void)
void Test_NtUserSystemParametersInfo_Params(void)
void Test_SPI_SETKEYBOARDPREF(void)
void Test_SPI_SETACCESSTIMEOUT(void)
void Test_SPI_SETMOUSE(void)
void Test_SPI_SETSERIALKEYS(void)
void Test_SPI_SETDRAGFULLWINDOWS(void)
HWND CreateTestWindow()
void Test_SPI_SETMOUSEKEYS(void)
void Test_SPI_SETFILTERKEYS(void)
#define ok(value,...)
Definition: atltest.h:57
#define skip(...)
Definition: atltest.h:64
HWND hWnd
Definition: settings.c:17
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 ERROR_SUCCESS
Definition: deptool.c:10
_ACRTIMP int __cdecl _wcsicmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:159
#define L(x)
Definition: resources.c:13
unsigned long DWORD
Definition: ntddk_ex.h:95
__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:2179
DWORD iTimeOutMSec
Definition: winuser.h:3033
#define SPI_GETACCESSTIMEOUT
Definition: winuser.h:1420
#define SPI_SETACCESSTIMEOUT
Definition: winuser.h:1421

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:902

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:1285
#define SPI_SETBORDER
Definition: winuser.h:1369
#define SPI_GETBORDER
Definition: winuser.h:1368
#define SPI_SETBEEP
Definition: winuser.h:1365
BOOL WINAPI SetProcessWindowStation(_In_ HWINSTA)
#define SPI_GETMOUSE
Definition: winuser.h:1366
#define SPI_SETKEYBOARDSPEED
Definition: winuser.h:1371
#define SPI_GETKEYBOARDSPEED
Definition: winuser.h:1370
BOOL WINAPI SystemParametersInfoA(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define SPI_ICONHORIZONTALSPACING
Definition: winuser.h:1373
#define SPI_GETBEEP
Definition: winuser.h:1364
#define SPI_SETMOUSE
Definition: winuser.h:1367
#define CreateWindowStation
Definition: winuser.h:5867
#define SPI_SETSCREENSAVETIMEOUT
Definition: winuser.h:1375
#define SPI_GETSCREENSAVETIMEOUT
Definition: winuser.h:1374

Referenced by START_TEST().

◆ Test_SPI_SETACCESSTIMEOUT()

void Test_SPI_SETACCESSTIMEOUT ( void  )

Definition at line 972 of file NtUserSystemParametersInfo.c.

973{
974 ACCESSTIMEOUT atoOrig = { 0 }, atoTmp = { 0 };
975 BOOL bRet;
976
977 /* Get original values */
978 atoOrig.cbSize = sizeof(ACCESSTIMEOUT);
979 bRet = NtUserSystemParametersInfo(SPI_GETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0);
980 ok_eq_bool(bRet, 1);
981 if (bRet != 1)
982 {
983 skip("Cannot get original access timeouts\n");
984 return;
985 }
986
987 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) - 1;
989 atoTmp.cbSize = sizeof(ACCESSTIMEOUT) + 1;
991 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
993 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
995 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
997 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
998 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoTmp), &atoTmp, 0), 1);
999 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
1000 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoTmp) - 1, &atoTmp, 0), 0);
1001 atoTmp.cbSize = sizeof(ACCESSTIMEOUT);
1002 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoTmp) + 1, &atoTmp, 0), 0);
1003
1004 /* Restore original values */
1005 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETACCESSTIMEOUT, sizeof(atoOrig), &atoOrig, 0), 1);
1006}
#define ok_eq_bool(value, expected)
Definition: apitest.h:137
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 BOOL bRet;
470
471 /* Get original value */
472 bRet = NtUserSystemParametersInfo(SPI_GETBEEP, 0, &bOrig, 0);
473 ok_eq_bool(bRet, 1);
474 if (bRet != 1)
475 {
476 skip("Cannot get original beep value\n");
477 return;
478 }
479
480 /* Value 0 */
483 ok_eq_bool(bTemp, FALSE);
484 cbSize = sizeof(szReg);
486 TEST(_wcsicmp(szReg, L"No") == 0);
487
488 /* Value 1 */
491 ok_eq_bool(bTemp, TRUE);
492 cbSize = sizeof(szReg);
494 TEST(_wcsicmp(szReg, L"Yes") == 0);
495
496 /* Value 2 */
499 ok_eq_bool(bTemp, TRUE);
500 cbSize = sizeof(szReg);
502 ok_eq_size(_wcsicmp(szReg, L"Yes"), 0);
503
504 /* Restore original value */
506}
static const WCHAR * VAL_BEEP
static const WCHAR * KEY_SOUND
#define ok_eq_size(value, expected)
Definition: apitest.h:126
#define ok_eq_int(value, expected)
Definition: apitest.h:117
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1599

Referenced by START_TEST().

◆ Test_SPI_SETBORDER()

void Test_SPI_SETBORDER ( void  )

Definition at line 553 of file NtUserSystemParametersInfo.c.

554{
555 INT iOrig, iTemp = 0;
556 BOOL bRet;
557
558 /* Get original value */
559 bRet = NtUserSystemParametersInfo(SPI_GETBORDER, 0, &iOrig, 0);
560 ok_eq_bool(bRet, 1);
561 if (bRet != 1)
562 {
563 skip("Cannot get original border value\n");
564 return;
565 }
566
567 /* Value 0 */
570 ok_eq_int(iTemp, 1);
572
573 /* Value 1 */
576 ok_eq_int(iTemp, 1);
577// Test_MetricKey(pti, VAL_BORDER, 1);
578#if 0 // Doesn't work on all windows versions
579 /* Value 2 */
582 TEST(iTemp == 2);
584#endif
585 /* Restore original value */
587
588}
#define SM_CXBORDER
Definition: winuser.h:975
int WINAPI GetSystemMetrics(_In_ int)

Referenced by START_TEST().

◆ Test_SPI_SETDESKWALLPAPER()

void Test_SPI_SETDESKWALLPAPER ( void  )

Definition at line 598 of file NtUserSystemParametersInfo.c.

599{
600 UNICODE_STRING ustrOld, ustrNew;
601 WCHAR szOld[MAX_PATH];
602 WCHAR szNew[MAX_PATH];
603
604 /* Get old Wallpaper */
606 RtlInitUnicodeString(&ustrOld, szOld);
607
608 /* Set no Wallpaper */
609#ifndef _M_AMD64
611#endif
613 TEST(szNew[0] == 0);
614
615 /* Set no Wallpaper 2 */
616 RtlInitUnicodeString(&ustrNew, L"");
619 TEST(szNew[0] == 0);
620
621 /* Reset Wallpaper */
624 TEST(wcscmp(szNew, szOld) == 0);
625
626 /* Set new Wallpaper */
627#if 0 // This is broken
628 RtlInitUnicodeString(&ustrNew, L"test.bmp");
631 TEST(wcscmp(szNew, L"test.bmp") == 0);
632#endif
633
634 /* Get Wallpaper, too small buffer */
635 szNew[0] = 0; szNew[1] = 0; szNew[2] = 0;
637#if 0 // This is broken
638 TEST(szNew[0] != 0);
639 TEST(szNew[1] != 0);
640 TEST(szNew[2] != 0);
641#endif
642
643 /* Set invalid Wallpaper */
644 SetLastError(0xdeadbeef);
645 RtlInitUnicodeString(&ustrNew, L"*#!!-&");
649 TEST(wcscmp(szNew, L"*#!!-&") == 0);
650
651 /* Restore old Wallpaper */
653
654}
#define MAX_PATH
Definition: compat.h:34
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1972
#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)
#define SPI_SETDESKWALLPAPER
Definition: winuser.h:1380

◆ Test_SPI_SETDRAGFULLWINDOWS()

void Test_SPI_SETDRAGFULLWINDOWS ( void  )

Definition at line 770 of file NtUserSystemParametersInfo.c.

771{
772
773}

Referenced by START_TEST().

◆ Test_SPI_SETFASTTASKSWITCH()

void Test_SPI_SETFASTTASKSWITCH ( void  )

Definition at line 760 of file NtUserSystemParametersInfo.c.

761{
762 char buf[10];
765
766
767}
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define SPI_SETFASTTASKSWITCH
Definition: winuser.h:1396

◆ Test_SPI_SETFILTERKEYS()

void Test_SPI_SETFILTERKEYS ( void  )

Definition at line 902 of file NtUserSystemParametersInfo.c.

903{
904
905}

Referenced by START_TEST().

◆ Test_SPI_SETHIGHCONTRAST()

void Test_SPI_SETHIGHCONTRAST ( void  )

Definition at line 1021 of file NtUserSystemParametersInfo.c.

1022{
1023
1024}

Referenced by START_TEST().

◆ Test_SPI_SETICONMETRICS()

void Test_SPI_SETICONMETRICS ( void  )

Definition at line 816 of file NtUserSystemParametersInfo.c.

817{
818 ICONMETRICSW metrics;
819 ICONMETRICSW origMetrics;
820
821 metrics.cbSize = sizeof(ICONMETRICSW);
822 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)&metrics, 0) == 1);
823 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, sizeof(ICONMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
824
825 origMetrics = metrics;
826
827 metrics.cbSize = sizeof(ICONMETRICSW) + 10;
828 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
829 TEST(NtUserSystemParametersInfo(SPI_GETICONMETRICS, 0, (PVOID)&metrics, 0) == 1);
830 ok(metrics.cbSize == sizeof(ICONMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(ICONMETRICSW), (ULONG)metrics.cbSize);
831
832 TEST(NtUserSystemParametersInfo(SPI_SETICONMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
833}
GLsizei GLenum const GLvoid GLuint GLsizei GLfloat * metrics
Definition: glext.h:11745
uint32_t ULONG
Definition: typedefs.h:59

◆ Test_SPI_SETICONTITLELOGFONT()

void Test_SPI_SETICONTITLELOGFONT ( void  )

Definition at line 714 of file NtUserSystemParametersInfo.c.

715{
716 LOGFONTW lfOrig;
717 struct
718 {
719 LOGFONTW lf;
720 DWORD dwRedzone;
721 } buf;
722 BOOL bRet;
723
724 /* Get original value */
725 bRet = NtUserSystemParametersInfo(SPI_GETICONTITLELOGFONT, sizeof(lfOrig), &lfOrig, 0);
726 ok_eq_bool(bRet, 1);
727 if (bRet != 1)
728 {
729 skip("Cannot get original icon title logfont\n");
730 return;
731 }
732
733 /* Test uiParam == 0 */
734 memset(&buf, 0, sizeof(buf));
735 buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
736 buf.dwRedzone = 0xdeadbeef;
738 TEST(buf.lf.lfHeight != 0);
739 TEST(buf.lf.lfWeight != 0);
740 TEST(buf.lf.lfFaceName[0] != 0);
741 TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
742 TEST(buf.dwRedzone == 0xdeadbeef);
743
744 /* Test uiParam < sizeof(LOGFONTW) */
745 memset(&buf, 0, sizeof(buf));
746 buf.lf.lfFaceName[LF_FACESIZE-1] = 33;
747 buf.dwRedzone = 0xdeadbeef;
749 TEST(buf.lf.lfHeight != 0);
750 TEST(buf.lf.lfWeight != 0);
751 TEST(buf.lf.lfFaceName[0] != 0);
752 TEST(buf.lf.lfFaceName[LF_FACESIZE-1] == 0);
753 TEST(buf.dwRedzone == 0xdeadbeef);
754
755 /* Test uiParam < 0 */
757}
#define LF_FACESIZE
Definition: dimm.idl:39
#define memset(x, y, z)
Definition: compat.h:39
#define SPI_GETICONTITLELOGFONT
Definition: winuser.h:1391

Referenced by START_TEST().

◆ Test_SPI_SETKEYBOARDCUES()

void Test_SPI_SETKEYBOARDCUES ( void  )

Definition at line 1098 of file NtUserSystemParametersInfo.c.

1099{
1100 Test_UserPref(SPI_GETKEYBOARDCUES, SPI_SETKEYBOARDCUES, UPM_KEYBOARDCUES);
1101}
void Test_UserPref(UINT uiGet, UINT uiSet, DWORD dwPrefMask)

◆ Test_SPI_SETKEYBOARDPREF()

void Test_SPI_SETKEYBOARDPREF ( void  )

Definition at line 1027 of file NtUserSystemParametersInfo.c.

1028{
1029
1030}

Referenced by START_TEST().

◆ Test_SPI_SETMENUANIMATION()

void Test_SPI_SETMENUANIMATION ( void  )

Test_SPI_SETANIMATION();.

Definition at line 1064 of file NtUserSystemParametersInfo.c.

1065{
1066 BOOL bOrig, bTemp = 0;
1067 DWORD dwUserPrefMask;
1068 DWORD cbSize;
1069
1070 /* Get original values */
1071 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bOrig, 0);
1072
1073 /* Value 0 */
1074 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, NULL, 0);
1075 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1076 TEST(bTemp == 0);
1077 cbSize = sizeof(dwUserPrefMask);
1078 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1079 TEST((dwUserPrefMask & UPM_MENUANIMATION) == 0);
1080
1081 /* Value 1 */
1082 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)1, 0);
1083 NtUserSystemParametersInfo(SPI_GETMENUANIMATION, 0, &bTemp, 0);
1084 TEST(bTemp == 1);
1085 cbSize = sizeof(dwUserPrefMask);
1086 TEST(QueryUserRegValueW(KEY_DESKTOP, VAL_PREFMASK, &dwUserPrefMask, &cbSize, NULL) == ERROR_SUCCESS);
1087 TEST((dwUserPrefMask & UPM_MENUANIMATION) != 0);
1088
1089 /* Restore original values */
1090 NtUserSystemParametersInfo(SPI_SETMENUANIMATION, 0, (PVOID)(ULONG_PTR)bOrig, 0);
1091}
static const WCHAR * KEY_DESKTOP
static const WCHAR * VAL_PREFMASK
uint32_t ULONG_PTR
Definition: typedefs.h:65

◆ Test_SPI_SETMINIMIZEDMETRICS()

void Test_SPI_SETMINIMIZEDMETRICS ( void  )

Definition at line 796 of file NtUserSystemParametersInfo.c.

797{
799 MINIMIZEDMETRICS origMetrics;
800
802 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)&metrics, 0) == 1);
803 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, sizeof(MINIMIZEDMETRICS), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
804
805 origMetrics = metrics;
806
807 metrics.cbSize = sizeof(MINIMIZEDMETRICS) + 10;
808 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
809 TEST(NtUserSystemParametersInfo(SPI_GETMINIMIZEDMETRICS, 0, (PVOID)&metrics, 0) == 1);
810 ok(metrics.cbSize == sizeof(MINIMIZEDMETRICS), "Expected size: %lu, got %lu\n", (ULONG)sizeof(MINIMIZEDMETRICS), (ULONG)metrics.cbSize);
811
812 TEST(NtUserSystemParametersInfo(SPI_SETMINIMIZEDMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
813}
struct tagMINIMIZEDMETRICS MINIMIZEDMETRICS

◆ Test_SPI_SETMOUSE()

void Test_SPI_SETMOUSE ( void  )

Definition at line 509 of file NtUserSystemParametersInfo.c.

510{
511 INT aiOrig[3], aiTemp[3];
512 BOOL bRet;
513
514 /* Get original value */
515 bRet = NtUserSystemParametersInfo(SPI_GETMOUSE, 0, aiOrig, 0);
516 ok_eq_bool(bRet, 1);
517 if (bRet != 1)
518 {
519 skip("Cannot get original mouse value\n");
520 return;
521 }
522
523 /* Test uiParam value */
527 ok_eq_bool(NtUserSystemParametersInfo(SPI_GETMOUSE, 0xdeadbeef, aiTemp, 0), 1);
528
529 /* Set modified values */
530 aiTemp[0] = aiOrig[0] + 1;
531 aiTemp[1] = aiOrig[1] - 1;
532 aiTemp[2] = aiOrig[2] + 2;
534 aiTemp[0] = aiTemp[1] = aiTemp[2] = 0;
535
536 /* Get new values */
538
539 /* Test modified values */
540#if 0 // Doesn't work on all Windows versions
541 ok_eq_int(aiTemp[0], aiOrig[0] + 1);
542 ok_eq_int(aiTemp[1], aiOrig[1] - 1);
543 ok_eq_int(aiTemp[2], aiOrig[2] + 2);
544#endif
545
546 // FIXME: Test registry values
547
548 /* Restore original value */
550}

Referenced by START_TEST().

◆ Test_SPI_SETMOUSEBUTTONSWAP()

void Test_SPI_SETMOUSEBUTTONSWAP ( void  )

Definition at line 666 of file NtUserSystemParametersInfo.c.

667{
668 BOOL bOrig, bTemp = 0;
669 WCHAR szReg[10];
670 DWORD cbSize;
671
672 /* Get original value */
674
675 /* Value 0 */
678 TEST(bTemp == 0);
679 cbSize = sizeof(szReg);
681 TEST(_wcsicmp(szReg, L"0") == 0);
682
683 /* Value 1 */
686 TEST(bTemp == 1);
687 cbSize = sizeof(szReg);
689 TEST(_wcsicmp(szReg, L"1") == 0);
690
691 /* Value 2 */
694 TEST(bTemp == 1);
695 cbSize = sizeof(szReg);
697 TEST(_wcsicmp(szReg, L"2") == 0);
698
699 /* Value -1 */
702 TEST(bTemp == 1);
703 cbSize = sizeof(szReg);
705 TEST(_wcsicmp(szReg, L"-1") == 0);
706
707 /* Restore original value */
709
710
711}
static const WCHAR * KEY_MOUSE
static const WCHAR * VAL_SWAP
#define SPI_SETMOUSEBUTTONSWAP
Definition: winuser.h:1393
#define SM_SWAPBUTTON
Definition: winuser.h:995

◆ Test_SPI_SETMOUSECLICKLOCK()

void Test_SPI_SETMOUSECLICKLOCK ( void  )

Definition at line 1113 of file NtUserSystemParametersInfo.c.

1114{
1115 Test_UserPref(SPI_GETMOUSECLICKLOCK, SPI_SETMOUSECLICKLOCK, UPM_CLICKLOCK);
1116}

◆ Test_SPI_SETMOUSEKEYS()

void Test_SPI_SETMOUSEKEYS ( void  )

Definition at line 914 of file NtUserSystemParametersInfo.c.

915{
916
917}

Referenced by START_TEST().

◆ Test_SPI_SETNONCLIENTMETRICS()

void Test_SPI_SETNONCLIENTMETRICS ( void  )

Definition at line 776 of file NtUserSystemParametersInfo.c.

777{
778 NONCLIENTMETRICSW metrics;
779 NONCLIENTMETRICSW origMetrics;
780
781 metrics.cbSize = sizeof(NONCLIENTMETRICSW);
782 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), &metrics, 0) == 1);
783 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICSW), (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
784
785 origMetrics = metrics;
786
787 metrics.cbSize = sizeof(NONCLIENTMETRICSW) + 10;
788 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
789 TEST(NtUserSystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, (PVOID)&metrics, 0) == 1);
790 ok(metrics.cbSize == sizeof(NONCLIENTMETRICSW), "Expected size: %lu, got %lu\n", (ULONG)sizeof(NONCLIENTMETRICSW), (ULONG)metrics.cbSize);
791
792 TEST(NtUserSystemParametersInfo(SPI_SETNONCLIENTMETRICS, 0, (PVOID)&origMetrics, 0) == 1);
793}

◆ Test_SPI_SETPENWINDOWS()

void Test_SPI_SETPENWINDOWS ( void  )

Definition at line 896 of file NtUserSystemParametersInfo.c.

897{
898
899}

Referenced by START_TEST().

◆ Test_SPI_SETSERIALKEYS()

void Test_SPI_SETSERIALKEYS ( void  )

Definition at line 1009 of file NtUserSystemParametersInfo.c.

1010{
1011
1012}

Referenced by START_TEST().

◆ Test_SPI_SETSHOWSOUNDS()

void Test_SPI_SETSHOWSOUNDS ( void  )

Definition at line 920 of file NtUserSystemParametersInfo.c.

921{
922
923}

Referenced by START_TEST().

◆ Test_SPI_SETSOUNDSENTRY()

void Test_SPI_SETSOUNDSENTRY ( void  )

Definition at line 1015 of file NtUserSystemParametersInfo.c.

1016{
1017
1018}

Referenced by START_TEST().

◆ Test_SPI_SETSTICKYKEYS()

void Test_SPI_SETSTICKYKEYS ( void  )

Definition at line 926 of file NtUserSystemParametersInfo.c.

927{
928 STICKYKEYS skOrig, sk;
929 BOOL bRet;
930
931 /* Get original values */
932 skOrig.cbSize = sizeof(STICKYKEYS);
933 bRet = NtUserSystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(STICKYKEYS), &skOrig, 0);
934 ok_eq_bool(bRet, 1);
935 if (bRet != 1)
936 {
937 skip("Cannot get original sticky keys\n");
938 return;
939 }
940
941 printf("sticky keys original dwFlags: 0x%08x\n", skOrig.dwFlags);
942
943 sk.cbSize = sizeof(STICKYKEYS)+1;
945
946 sk.cbSize = sizeof(STICKYKEYS)-1;
948
949 sk.cbSize = sizeof(STICKYKEYS);
953 ok_eq_bool(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(sk) - 1, &sk, 0), 0);
954 ok_eq_bool(NtUserSystemParametersInfo(SPI_GETSTICKYKEYS, sizeof(sk) + 1, &sk, 0), 0);
955
956 sk = skOrig;
957 sk.dwFlags = (skOrig.dwFlags ^ SKF_AUDIBLEFEEDBACK);
958 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(sk) + 1, &sk, 0), 0);
959 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(sk) - 1, &sk, 0), 0);
961
962 sk = skOrig;
965
966 /* Restore original values */
967 skOrig.cbSize = sizeof(STICKYKEYS);
968 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETSTICKYKEYS, sizeof(skOrig), &skOrig, 0), 1);
969}
#define ok_eq_hex(value, expected)
Definition: apitest.h:134
DWORD dwFlags
Definition: winuser.h:3632
DWORD cbSize
Definition: winuser.h:3631
#define SPI_SETSTICKYKEYS
Definition: winuser.h:1419
struct tagSTICKYKEYS STICKYKEYS
#define SKF_AUDIBLEFEEDBACK
Definition: winuser.h:2209
#define SPI_GETSTICKYKEYS
Definition: winuser.h:1418

Referenced by START_TEST().

◆ Test_SPI_SETTOGGLEKEYS()

void Test_SPI_SETTOGGLEKEYS ( void  )

Definition at line 908 of file NtUserSystemParametersInfo.c.

909{
910
911}

Referenced by START_TEST().

◆ Test_SPI_SETWORKAREA()

void Test_SPI_SETWORKAREA ( void  )

Definition at line 836 of file NtUserSystemParametersInfo.c.

837{
838 RECT rcOrig, rc;
839 BOOL bRet;
840
841 /* Get the original value */
842 bRet = NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, &rcOrig, 0);
843 ok_eq_bool(bRet, 1);
844 if (bRet != 1)
845 {
846 skip("Cannot get original work area\n");
847 return;
848 }
849
850 /* Change value */
851 rc = rcOrig;
852 rc.left += 1;
853 rc.top += 2;
854 rc.right -= 3;
855 rc.bottom -= 2;
856 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 1, &rc, 0) == 1);
857 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
858 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, sizeof(RECT), &rc, 0) == 1);
859
860 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 1, &rc, 0) == 1);
861 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, -1, &rc, 0) == 1);
862 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0xdeadbeef, &rc, 0) == 1);
863 TEST(NtUserSystemParametersInfo(SPI_GETWORKAREA, 0, (PVOID)(LONG_PTR)0xdeadbeef, 0) == 0);
864
865 /* Test values */
866 rc = rcOrig; rc.left = -1;
867 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
868 rc = rcOrig; rc.top = -1;
869 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
870 rc = rcOrig; rc.top = 10; rc.bottom = 11;
871 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
872 rc = rcOrig; rc.top = 10; rc.bottom = 10;
873 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
874 rc = rcOrig; rc.top = 10; rc.bottom = 9;
875 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
876 rc = rcOrig; rc.left = 10; rc.right = 11;
877 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
878 rc = rcOrig; rc.left = 10; rc.right = 10;
879 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
880 rc = rcOrig; rc.left = 10; rc.right = 9;
881 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
882 rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN);
883 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
884 rc = rcOrig; rc.bottom = GetSystemMetrics(SM_CYVIRTUALSCREEN)+1;
885 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
886 rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN);
887 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 1);
888 rc = rcOrig; rc.right = GetSystemMetrics(SM_CXVIRTUALSCREEN)+1;
889 TEST(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rc, 0) == 0);
890
891 /* Restore original value */
892 ok_eq_bool(NtUserSystemParametersInfo(SPI_SETWORKAREA, 0, &rcOrig, 0), 1);
893}
Definition: windef.h:99
LONG right
Definition: windef.h:102
LONG bottom
Definition: windef.h:103
LONG top
Definition: windef.h:101
LONG left
Definition: windef.h:100
#define SM_CYVIRTUALSCREEN
Definition: winuser.h:1050
#define SM_CXVIRTUALSCREEN
Definition: winuser.h:1049

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