- partly revert 43298

- fix the mouse swap button issue
- cleanup loading mouse properties
- change reg key types for mouse values like windows

svn path=/trunk/; revision=43304
This commit is contained in:
Matthias Kupfer 2009-10-05 14:13:29 +00:00
parent 6c43b7b64f
commit fb725bd122
3 changed files with 61 additions and 94 deletions

View file

@ -6,13 +6,13 @@ Signature="$ReactOS$
HKCU,"Control Panel",,0x00000012 HKCU,"Control Panel",,0x00000012
HKCU,"Control Panel\Accessibility",,0x00000012 HKCU,"Control Panel\Accessibility",,0x00000012
HKCU,"Control Panel\Appearance",,0x00000012 HKCU,"Control Panel\Appearance",,0x00000012
HKCU,"Control Panel\Mouse","MouseTrails",0x00010001,0x00000000 HKCU,"Control Panel\Mouse","MouseTrails",0x00000002,"0"
HKCU,"Control Panel\Mouse","SnapToDefaultButton",0x00010001,0x00000000 HKCU,"Control Panel\Mouse","SnapToDefaultButton",0x00000002,"0"
HKCU,"Control Panel\Mouse","MouseSpeed",0x00010001,0x00000001 HKCU,"Control Panel\Mouse","MouseSpeed",0x00000002,"1"
HKCU,"Control Panel\Mouse","MouseThreshold1",0x00010001,0x00000006 HKCU,"Control Panel\Mouse","MouseThreshold1",0x00000002,"6"
HKCU,"Control Panel\Mouse","MouseThreshold2",0x00010001,0x0000000A HKCU,"Control Panel\Mouse","MouseThreshold2",0x00000002,"10"
HKCU,"Control Panel\Mouse","DoubleClickSpeed",0x00010001,0x000001E0 HKCU,"Control Panel\Mouse","DoubleClickSpeed",0x00000002,"480"
HKCU,"Control Panel\Mouse","SwapMouseButtons",0x00010001,0x00000000 HKCU,"Control Panel\Mouse","SwapMouseButtons",0x00000002,"0"
HKCU,"Control Panel\Desktop","AutoEndTasks",0x00000002,"0" HKCU,"Control Panel\Desktop","AutoEndTasks",0x00000002,"0"
HKCU,"Control Panel\Desktop","CursorBlinkRate",0x00000002,"530" HKCU,"Control Panel\Desktop","CursorBlinkRate",0x00000002,"530"

View file

@ -6,13 +6,13 @@ Signature="$ReactOS$
HKCU,"Control Panel",,0x00000012 HKCU,"Control Panel",,0x00000012
HKCU,"Control Panel\Accessibility",,0x00000012 HKCU,"Control Panel\Accessibility",,0x00000012
HKCU,"Control Panel\Appearance",,0x00000012 HKCU,"Control Panel\Appearance",,0x00000012
HKCU,"Control Panel\Mouse","MouseTrails",0x00010001,0x00000000 HKCU,"Control Panel\Mouse","MouseTrails",0x00000002,"0"
HKCU,"Control Panel\Mouse","SnapToDefaultButton",0x00010001,0x00000000 HKCU,"Control Panel\Mouse","SnapToDefaultButton",0x00000002,"0"
HKCU,"Control Panel\Mouse","MouseSpeed",0x00010001,0x00000001 HKCU,"Control Panel\Mouse","MouseSpeed",0x00000002,"1"
HKCU,"Control Panel\Mouse","MouseThreshold1",0x00010001,0x00000006 HKCU,"Control Panel\Mouse","MouseThreshold1",0x00000002,"6"
HKCU,"Control Panel\Mouse","MouseThreshold2",0x00010001,0x0000000A HKCU,"Control Panel\Mouse","MouseThreshold2",0x00000002,"10"
HKCU,"Control Panel\Mouse","DoubleClickSpeed",0x00010001,0x000001E0 HKCU,"Control Panel\Mouse","DoubleClickSpeed",0x00000002,"480"
HKCU,"Control Panel\Mouse","SwapMouseButtons",0x00010001,0x00000000 HKCU,"Control Panel\Mouse","SwapMouseButtons",0x00000002,"0"
HKCU,"Control Panel\Desktop","AutoEndTasks",0x00000002,"0" HKCU,"Control Panel\Desktop","AutoEndTasks",0x00000002,"0"
HKCU,"Control Panel\Desktop","CursorBlinkRate",0x00000002,"530" HKCU,"Control Panel\Desktop","CursorBlinkRate",0x00000002,"530"

View file

@ -46,9 +46,11 @@ static const WCHAR* KEY_MOUSE = L"Control Panel\\Mouse";
static const WCHAR* VAL_MOUSE1 = L"MouseThreshold1"; static const WCHAR* VAL_MOUSE1 = L"MouseThreshold1";
static const WCHAR* VAL_MOUSE2 = L"MouseThreshold2"; static const WCHAR* VAL_MOUSE2 = L"MouseThreshold2";
static const WCHAR* VAL_MOUSE3 = L"MouseSpeed"; static const WCHAR* VAL_MOUSE3 = L"MouseSpeed";
static const WCHAR* VAL_MOUSETRAILS = L"MouseTrails";
static const WCHAR* VAL_DBLCLKWIDTH = L"DoubleClickWidth"; static const WCHAR* VAL_DBLCLKWIDTH = L"DoubleClickWidth";
static const WCHAR* VAL_DBLCLKHEIGHT = L"DoubleClickHeight"; static const WCHAR* VAL_DBLCLKHEIGHT = L"DoubleClickHeight";
static const WCHAR* VAL_DBLCLKTIME = L"DoubleClickSpeed"; static const WCHAR* VAL_DBLCLKTIME = L"DoubleClickSpeed";
static const WCHAR* VAL_SNAPDEFBTN = L"SnapToDefaultButton";
static const WCHAR* VAL_SWAP = L"SwapMouseButtons"; static const WCHAR* VAL_SWAP = L"SwapMouseButtons";
static const WCHAR* KEY_DESKTOP = L"Control Panel\\Desktop"; static const WCHAR* KEY_DESKTOP = L"Control Panel\\Desktop";
@ -87,19 +89,7 @@ static const WCHAR* VAL_ON = L"On";
static static
INT INT
SpiLoadDWord(PCWSTR pwszKey, PCWSTR pwszValue, INT iValue) SpiLoadInt(PCWSTR pwszKey, PCWSTR pwszValue, INT iValue)
{
DWORD Result;
if (!RegReadUserSetting(pwszKey, pwszValue, REG_DWORD, &Result, sizeof(Result)))
{
return iValue;
}
return Result;
}
static
INT
SpiLoadszInt(PCWSTR pwszKey, PCWSTR pwszValue, INT iValue)
{ {
WCHAR awcBuffer[12]; WCHAR awcBuffer[12];
ULONG cbSize; ULONG cbSize;
@ -116,7 +106,7 @@ static
INT INT
SpiLoadMouse(PCWSTR pwszValue, INT iValue) SpiLoadMouse(PCWSTR pwszValue, INT iValue)
{ {
return SpiLoadDWord(KEY_MOUSE, pwszValue, iValue); return SpiLoadInt(KEY_MOUSE, pwszValue, iValue);
} }
static static
@ -125,7 +115,7 @@ SpiLoadMetric(LPWSTR pwszValue, INT iValue)
{ {
INT iRegVal; INT iRegVal;
iRegVal = SpiLoadszInt(KEY_METRIC, pwszValue, METRIC2REG(iValue)); iRegVal = SpiLoadInt(KEY_METRIC, pwszValue, METRIC2REG(iValue));
DPRINT("Loaded metric setting '%S', iValue=%d(reg:%d), ret=%d(reg:%d)\n", DPRINT("Loaded metric setting '%S', iValue=%d(reg:%d), ret=%d(reg:%d)\n",
pwszValue, iValue, METRIC2REG(iValue), REG2METRIC(iRegVal), iRegVal); pwszValue, iValue, METRIC2REG(iValue), REG2METRIC(iRegVal), iRegVal);
return REG2METRIC(iRegVal); return REG2METRIC(iRegVal);
@ -191,8 +181,10 @@ SpiUpdatePerUserSystemParameters()
gspv.caiMouse.SecondThreshold = SpiLoadMouse(VAL_MOUSE2, 10); gspv.caiMouse.SecondThreshold = SpiLoadMouse(VAL_MOUSE2, 10);
gspv.caiMouse.Acceleration = SpiLoadMouse(VAL_MOUSE3, 1); gspv.caiMouse.Acceleration = SpiLoadMouse(VAL_MOUSE3, 1);
gspv.bMouseBtnSwap = SpiLoadMouse(VAL_SWAP, 0); gspv.bMouseBtnSwap = SpiLoadMouse(VAL_SWAP, 0);
gspv.bSnapToDefBtn = SpiLoadMouse(VAL_SNAPDEFBTN, 0);
gspv.iMouseTrails = SpiLoadMouse(VAL_MOUSETRAILS, 0);
gspv.iMouseSpeed = SpiLoadMouse(VAL_MOUSE3, 1); gspv.iMouseSpeed = SpiLoadMouse(VAL_MOUSE3, 1);
gspv.iDblClickTime = SpiLoadMouse(VAL_DBLCLKTIME, 500); gspv.iDblClickTime = SpiLoadMouse(VAL_DBLCLKTIME, 480);
gspv.iDblClickWidth = SpiLoadMouse(VAL_DBLCLKWIDTH, 4); gspv.iDblClickWidth = SpiLoadMouse(VAL_DBLCLKWIDTH, 4);
gspv.iDblClickHeight = SpiLoadMouse(VAL_DBLCLKHEIGHT, 4); gspv.iDblClickHeight = SpiLoadMouse(VAL_DBLCLKHEIGHT, 4);
@ -221,7 +213,7 @@ SpiUpdatePerUserSystemParameters()
gspv.mm.iWidth = SpiLoadMetric(L"MinWidth", 160); gspv.mm.iWidth = SpiLoadMetric(L"MinWidth", 160);
gspv.mm.iHorzGap = SpiLoadMetric(L"MinHorzGap", 160); gspv.mm.iHorzGap = SpiLoadMetric(L"MinHorzGap", 160);
gspv.mm.iVertGap = SpiLoadMetric(L"MinVertGap", 24); gspv.mm.iVertGap = SpiLoadMetric(L"MinVertGap", 24);
gspv.mm.iArrange = SpiLoadszInt(KEY_METRIC, L"MinArrange", ARW_HIDE); gspv.mm.iArrange = SpiLoadInt(KEY_METRIC, L"MinArrange", ARW_HIDE);
/* Load ICONMETRICS */ /* Load ICONMETRICS */
gspv.im.cbSize = sizeof(ICONMETRICSW); gspv.im.cbSize = sizeof(ICONMETRICSW);
@ -231,7 +223,7 @@ SpiUpdatePerUserSystemParameters()
SpiLoadFont(&gspv.im.lfFont, L"IconFont", &lf1); SpiLoadFont(&gspv.im.lfFont, L"IconFont", &lf1);
/* Load desktop settings */ /* Load desktop settings */
gspv.bDragFullWindows = SpiLoadszInt(KEY_DESKTOP, VAL_DRAG, 0); gspv.bDragFullWindows = SpiLoadInt(KEY_DESKTOP, VAL_DRAG, 0);
/* Some hardcoded values for now */ /* Some hardcoded values for now */
gspv.iMouseHoverTime = 80; gspv.iMouseHoverTime = 80;
@ -309,18 +301,6 @@ SpiStoreSz(PCWSTR pwszKey, PCWSTR pwszValue, PCWSTR pwsz)
wcslen(pwsz) * sizeof(WCHAR)); wcslen(pwsz) * sizeof(WCHAR));
} }
static
VOID
SpiStoreDWord(PCWSTR pwszKey, PCWSTR pwszValue, INT iValue)
{
DWORD Value = iValue;
RegWriteUserSetting(pwszKey,
pwszValue,
REG_DWORD,
&Value,
sizeof(Value));
}
static static
VOID VOID
SpiStoreSzInt(PCWSTR pwszKey, PCWSTR pwszValue, INT iValue) SpiStoreSzInt(PCWSTR pwszKey, PCWSTR pwszValue, INT iValue)
@ -461,20 +441,7 @@ SpiSetBool(BOOL *pbData, INT iValue, PCWSTR pwszKey, PCWSTR pwszValue, FLONG fl)
static inline static inline
UINT_PTR UINT_PTR
SpiSetDWord(PVOID pvData, INT iValue, PCWSTR pwszKey, PCWSTR pwszValue, FLONG fl) SpiSetInt(PVOID pvData, INT iValue, PCWSTR pwszKey, PCWSTR pwszValue, FLONG fl)
{
REQ_INTERACTIVE_WINSTA(ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION);
*(INT*)pvData = iValue;
if (fl & SPIF_UPDATEINIFILE)
{
SpiStoreDWord(pwszKey, pwszValue, iValue);
}
return (UINT_PTR)pwszKey;
}
static inline
UINT_PTR
SpiSetszInt(PVOID pvData, INT iValue, PCWSTR pwszKey, PCWSTR pwszValue, FLONG fl)
{ {
REQ_INTERACTIVE_WINSTA(ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION); REQ_INTERACTIVE_WINSTA(ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION);
*(INT*)pvData = iValue; *(INT*)pvData = iValue;
@ -623,8 +590,8 @@ SpiSetWallpaper(PVOID pvParam, FLONG fl)
GDIOBJ_SetOwnership(hbmp, NULL); GDIOBJ_SetOwnership(hbmp, NULL);
/* Yes, Windows really loads the current setting from the registry. */ /* Yes, Windows really loads the current setting from the registry. */
ulTile = SpiLoadszInt(KEY_DESKTOP, L"TileWallpaper", 0); ulTile = SpiLoadInt(KEY_DESKTOP, L"TileWallpaper", 0);
ulStyle = SpiLoadszInt(KEY_DESKTOP, L"WallpaperStyle", 0); ulStyle = SpiLoadInt(KEY_DESKTOP, L"WallpaperStyle", 0);
DPRINT("SpiSetWallpaper: ulTile=%ld, ulStyle=%d\n", ulTile, ulStyle); DPRINT("SpiSetWallpaper: ulTile=%ld, ulStyle=%d\n", ulTile, ulStyle);
/* Check the values we found in the registry */ /* Check the values we found in the registry */
@ -694,13 +661,13 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
case SPI_SETBORDER: case SPI_SETBORDER:
uiParam = max(uiParam, 1); uiParam = max(uiParam, 1);
return SpiSetszInt(&gspv.ncm.iBorderWidth, uiParam, KEY_METRIC, VAL_BORDER, fl); return SpiSetInt(&gspv.ncm.iBorderWidth, uiParam, KEY_METRIC, VAL_BORDER, fl);
case SPI_GETKEYBOARDSPEED: case SPI_GETKEYBOARDSPEED:
return SpiGetInt(pvParam, &gspv.dwKbdSpeed, fl); return SpiGetInt(pvParam, &gspv.dwKbdSpeed, fl);
case SPI_SETKEYBOARDSPEED: case SPI_SETKEYBOARDSPEED:
return SpiSetszInt(&gspv.dwKbdSpeed, uiParam, KEY_KBD, VAL_KBDSPD, fl); return SpiSetInt(&gspv.dwKbdSpeed, uiParam, KEY_KBD, VAL_KBDSPD, fl);
case SPI_LANGDRIVER: case SPI_LANGDRIVER:
DPRINT1("SPI_LANGDRIVER is unimplemented\n"); DPRINT1("SPI_LANGDRIVER is unimplemented\n");
@ -710,19 +677,19 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.iScrSaverTimeout, fl); return SpiGetInt(pvParam, &gspv.iScrSaverTimeout, fl);
case SPI_SETSCREENSAVETIMEOUT: case SPI_SETSCREENSAVETIMEOUT:
return SpiSetszInt(&gspv.iScrSaverTimeout, uiParam, KEY_DESKTOP, VAL_SCRTO, fl); return SpiSetInt(&gspv.iScrSaverTimeout, uiParam, KEY_DESKTOP, VAL_SCRTO, fl);
case SPI_GETSCREENSAVEACTIVE: case SPI_GETSCREENSAVEACTIVE:
return SpiGetInt(pvParam, &gspv.bScrSaverActive, fl); return SpiGetInt(pvParam, &gspv.bScrSaverActive, fl);
case SPI_SETSCREENSAVEACTIVE: case SPI_SETSCREENSAVEACTIVE:
return SpiSetszInt(&gspv.bScrSaverActive, uiParam, KEY_DESKTOP, VAL_SCRACT, fl); return SpiSetInt(&gspv.bScrSaverActive, uiParam, KEY_DESKTOP, VAL_SCRACT, fl);
case SPI_GETGRIDGRANULARITY: case SPI_GETGRIDGRANULARITY:
return SpiGetInt(pvParam, &gspv.uiGridGranularity, fl); return SpiGetInt(pvParam, &gspv.uiGridGranularity, fl);
case SPI_SETGRIDGRANULARITY: case SPI_SETGRIDGRANULARITY:
return SpiSetszInt(&gspv.uiGridGranularity, uiParam, KEY_DESKTOP, VAL_GRID, fl); return SpiSetInt(&gspv.uiGridGranularity, uiParam, KEY_DESKTOP, VAL_GRID, fl);
case SPI_GETDESKWALLPAPER: case SPI_GETDESKWALLPAPER:
uiParam = min(uiParam, gspv.ustrWallpaper.Length + 1); uiParam = min(uiParam, gspv.ustrWallpaper.Length + 1);
@ -739,7 +706,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.iKbdDelay, fl); return SpiGetInt(pvParam, &gspv.iKbdDelay, fl);
case SPI_SETKEYBOARDDELAY: case SPI_SETKEYBOARDDELAY:
return SpiSetszInt(&gspv.iKbdDelay, uiParam, KEY_KBD, VAL_KBDDELAY, fl); return SpiSetInt(&gspv.iKbdDelay, uiParam, KEY_KBD, VAL_KBDDELAY, fl);
case SPI_ICONHORIZONTALSPACING: case SPI_ICONHORIZONTALSPACING:
if (pvParam) if (pvParam)
@ -761,7 +728,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.im.iTitleWrap, fl); return SpiGetInt(pvParam, &gspv.im.iTitleWrap, fl);
case SPI_SETICONTITLEWRAP: case SPI_SETICONTITLEWRAP:
return SpiSetszInt(&gspv.im.iTitleWrap, uiParam, KEY_METRIC, VAL_ITWRAP, fl); return SpiSetInt(&gspv.im.iTitleWrap, uiParam, KEY_METRIC, VAL_ITWRAP, fl);
case SPI_GETMENUDROPALIGNMENT: case SPI_GETMENUDROPALIGNMENT:
return SpiGetInt(pvParam, &gspv.bMenuDropAlign, fl); return SpiGetInt(pvParam, &gspv.bMenuDropAlign, fl);
@ -770,10 +737,10 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiSetBool(&gspv.bMenuDropAlign, uiParam, KEY_MDALIGN, VAL_MDALIGN, fl); return SpiSetBool(&gspv.bMenuDropAlign, uiParam, KEY_MDALIGN, VAL_MDALIGN, fl);
case SPI_SETDOUBLECLKWIDTH: case SPI_SETDOUBLECLKWIDTH:
return SpiSetszInt(&gspv.iDblClickWidth, uiParam, KEY_MOUSE, VAL_DBLCLKWIDTH, fl); return SpiSetInt(&gspv.iDblClickWidth, uiParam, KEY_MOUSE, VAL_DBLCLKWIDTH, fl);
case SPI_SETDOUBLECLKHEIGHT: case SPI_SETDOUBLECLKHEIGHT:
return SpiSetszInt(&gspv.iDblClickHeight, uiParam, KEY_MOUSE, VAL_DBLCLKHEIGHT, fl); return SpiSetInt(&gspv.iDblClickHeight, uiParam, KEY_MOUSE, VAL_DBLCLKHEIGHT, fl);
case SPI_GETICONTITLELOGFONT: case SPI_GETICONTITLELOGFONT:
return SpiGet(pvParam, &gspv.im.lfFont, sizeof(LOGFONTW), fl); return SpiGet(pvParam, &gspv.im.lfFont, sizeof(LOGFONTW), fl);
@ -788,10 +755,10 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return (UINT_PTR)KEY_METRIC; return (UINT_PTR)KEY_METRIC;
case SPI_SETDOUBLECLICKTIME: case SPI_SETDOUBLECLICKTIME:
return SpiSetszInt(&gspv.iDblClickTime, uiParam, KEY_MOUSE, VAL_DBLCLKTIME, fl); return SpiSetInt(&gspv.iDblClickTime, uiParam, KEY_MOUSE, VAL_DBLCLKTIME, fl);
case SPI_SETMOUSEBUTTONSWAP: case SPI_SETMOUSEBUTTONSWAP:
return SpiSetDWord(&gspv.bMouseBtnSwap, uiParam, KEY_MOUSE, VAL_SWAP, fl); return SpiSetInt(&gspv.bMouseBtnSwap, uiParam, KEY_MOUSE, VAL_SWAP, fl);
case SPI_GETFASTTASKSWITCH: case SPI_GETFASTTASKSWITCH:
return SpiGetInt(pvParam, &gspv.bFastTaskSwitch, fl); return SpiGetInt(pvParam, &gspv.bFastTaskSwitch, fl);
@ -804,7 +771,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.bDragFullWindows, fl); return SpiGetInt(pvParam, &gspv.bDragFullWindows, fl);
case SPI_SETDRAGFULLWINDOWS: case SPI_SETDRAGFULLWINDOWS:
return SpiSetszInt(&gspv.bDragFullWindows, uiParam, KEY_DESKTOP, VAL_DRAG, fl); return SpiSetInt(&gspv.bDragFullWindows, uiParam, KEY_DESKTOP, VAL_DRAG, fl);
case SPI_GETNONCLIENTMETRICS: case SPI_GETNONCLIENTMETRICS:
return SpiGet(pvParam, &gspv.ncm, sizeof(NONCLIENTMETRICSW), fl); return SpiGet(pvParam, &gspv.ncm, sizeof(NONCLIENTMETRICSW), fl);
@ -1056,10 +1023,10 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return (UINT_PTR)KEY_DESKTOP; return (UINT_PTR)KEY_DESKTOP;
case SPI_SETDRAGWIDTH: case SPI_SETDRAGWIDTH:
return SpiSetszInt(&gspv.iDragWidth, uiParam, KEY_DESKTOP, VAL_DRAGWIDTH, fl); return SpiSetInt(&gspv.iDragWidth, uiParam, KEY_DESKTOP, VAL_DRAGWIDTH, fl);
case SPI_SETDRAGHEIGHT: case SPI_SETDRAGHEIGHT:
return SpiSetszInt(&gspv.iDragHeight, uiParam, KEY_DESKTOP, VAL_DRAGHEIGHT, fl); return SpiSetInt(&gspv.iDragHeight, uiParam, KEY_DESKTOP, VAL_DRAGHEIGHT, fl);
case SPI_SETHANDHELD: case SPI_SETHANDHELD:
return SpiSetBool(&gspv.bHandHeld, uiParam, KEY_DESKTOP, L"HandHeld", fl); return SpiSetBool(&gspv.bHandHeld, uiParam, KEY_DESKTOP, L"HandHeld", fl);
@ -1071,10 +1038,10 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.iPwrOffTimeout, fl); return SpiGetInt(pvParam, &gspv.iPwrOffTimeout, fl);
case SPI_SETLOWPOWERTIMEOUT: case SPI_SETLOWPOWERTIMEOUT:
return SpiSetszInt(&gspv.iLowPwrTimeout, uiParam, KEY_DESKTOP, L"LowPowerTimeOut", fl); return SpiSetInt(&gspv.iLowPwrTimeout, uiParam, KEY_DESKTOP, L"LowPowerTimeOut", fl);
case SPI_SETPOWEROFFTIMEOUT: case SPI_SETPOWEROFFTIMEOUT:
return SpiSetszInt(&gspv.iPwrOffTimeout, uiParam, KEY_DESKTOP, L"PowerOffTimeOut", fl); return SpiSetInt(&gspv.iPwrOffTimeout, uiParam, KEY_DESKTOP, L"PowerOffTimeOut", fl);
case SPI_GETLOWPOWERACTIVE: case SPI_GETLOWPOWERACTIVE:
return SpiGetInt(pvParam, &gspv.iPwrOffTimeout, fl); return SpiGetInt(pvParam, &gspv.iPwrOffTimeout, fl);
@ -1116,7 +1083,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.iMouseTrails, fl); return SpiGetInt(pvParam, &gspv.iMouseTrails, fl);
case SPI_SETMOUSETRAILS: case SPI_SETMOUSETRAILS:
return SpiSetszInt(&gspv.iMouseTrails, uiParam, KEY_MOUSE, L"MouseTrails", fl); return SpiSetInt(&gspv.iMouseTrails, uiParam, KEY_MOUSE, L"MouseTrails", fl);
case SPI_GETSNAPTODEFBUTTON: case SPI_GETSNAPTODEFBUTTON:
return SpiGetInt(pvParam, &gspv.bSnapToDefBtn, fl); return SpiGetInt(pvParam, &gspv.bSnapToDefBtn, fl);
@ -1128,13 +1095,13 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.iMouseHoverWidth, fl); return SpiGetInt(pvParam, &gspv.iMouseHoverWidth, fl);
case SPI_SETMOUSEHOVERWIDTH: case SPI_SETMOUSEHOVERWIDTH:
return SpiSetszInt(&gspv.iMouseHoverWidth, uiParam, KEY_MOUSE, L"MouseHoverWidth", fl); return SpiSetInt(&gspv.iMouseHoverWidth, uiParam, KEY_MOUSE, L"MouseHoverWidth", fl);
case SPI_GETMOUSEHOVERHEIGHT: case SPI_GETMOUSEHOVERHEIGHT:
return SpiGetInt(pvParam, &gspv.iMouseHoverHeight, fl); return SpiGetInt(pvParam, &gspv.iMouseHoverHeight, fl);
case SPI_SETMOUSEHOVERHEIGHT: case SPI_SETMOUSEHOVERHEIGHT:
return SpiSetszInt(&gspv.iMouseHoverHeight, uiParam, KEY_MOUSE, L"MouseHoverHeight", fl); return SpiSetInt(&gspv.iMouseHoverHeight, uiParam, KEY_MOUSE, L"MouseHoverHeight", fl);
case SPI_GETMOUSEHOVERTIME: case SPI_GETMOUSEHOVERTIME:
return SpiGetInt(pvParam, &gspv.iMouseHoverTime, fl); return SpiGetInt(pvParam, &gspv.iMouseHoverTime, fl);
@ -1147,26 +1114,26 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
* enforce the use of USER_TIMER_MAXIMUM and USER_TIMER_MINIMUM until * enforce the use of USER_TIMER_MAXIMUM and USER_TIMER_MINIMUM until
* Windows Server 2003 SP1 and Windows XP SP2 " * Windows Server 2003 SP1 and Windows XP SP2 "
*/ */
return SpiSetszInt(&gspv.iMouseHoverTime, uiParam, KEY_MOUSE, L"MouseHoverTime", fl); return SpiSetInt(&gspv.iMouseHoverTime, uiParam, KEY_MOUSE, L"MouseHoverTime", fl);
case SPI_GETWHEELSCROLLLINES: case SPI_GETWHEELSCROLLLINES:
return SpiGetInt(pvParam, &gspv.iWheelScrollLines, fl); return SpiGetInt(pvParam, &gspv.iWheelScrollLines, fl);
case SPI_SETWHEELSCROLLLINES: case SPI_SETWHEELSCROLLLINES:
return SpiSetszInt(&gspv.iWheelScrollLines, uiParam, KEY_DESKTOP, L"WheelScrollLines", fl); return SpiSetInt(&gspv.iWheelScrollLines, uiParam, KEY_DESKTOP, L"WheelScrollLines", fl);
case SPI_GETMENUSHOWDELAY: case SPI_GETMENUSHOWDELAY:
return SpiGetInt(pvParam, &gspv.dwMenuShowDelay, fl); return SpiGetInt(pvParam, &gspv.dwMenuShowDelay, fl);
case SPI_SETMENUSHOWDELAY: case SPI_SETMENUSHOWDELAY:
return SpiSetszInt(&gspv.dwMenuShowDelay, uiParam, KEY_DESKTOP, L"MenuShowDelay", fl); return SpiSetInt(&gspv.dwMenuShowDelay, uiParam, KEY_DESKTOP, L"MenuShowDelay", fl);
#if (_WIN32_WINNT >= 0x0600) #if (_WIN32_WINNT >= 0x0600)
case SPI_GETWHEELSCROLLCHARS: case SPI_GETWHEELSCROLLCHARS:
return SpiGetInt(pvParam, &gspv.uiWheelScrollChars, fl); return SpiGetInt(pvParam, &gspv.uiWheelScrollChars, fl);
case SPI_SETWHEELSCROLLCHARS: case SPI_SETWHEELSCROLLCHARS:
return SpiSetszInt(&gspv.uiWheelScrollChars, uiParam, KEY_DESKTOP, L"WheelScrollChars", fl); return SpiSetInt(&gspv.uiWheelScrollChars, uiParam, KEY_DESKTOP, L"WheelScrollChars", fl);
#endif #endif
case SPI_GETSHOWIMEUI: case SPI_GETSHOWIMEUI:
return SpiGetInt(pvParam, &gspv.bShowImeUi, fl); return SpiGetInt(pvParam, &gspv.bShowImeUi, fl);
@ -1179,7 +1146,7 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
case SPI_SETMOUSESPEED: case SPI_SETMOUSESPEED:
// vgl SETMOUSE // vgl SETMOUSE
return SpiSetszInt(&gspv.iMouseSpeed, uiParam, KEY_MOUSE, L"MouseSpeed", fl); return SpiSetInt(&gspv.iMouseSpeed, uiParam, KEY_MOUSE, L"MouseSpeed", fl);
case SPI_GETSCREENSAVERRUNNING: case SPI_GETSCREENSAVERRUNNING:
return SpiGetInt(pvParam, &gspv.bScrSaverRunning, fl); return SpiGetInt(pvParam, &gspv.bScrSaverRunning, fl);
@ -1353,61 +1320,61 @@ SpiGetSet(UINT uiAction, UINT uiParam, PVOID pvParam, FLONG fl)
return SpiGetInt(pvParam, &gspv.dwForegroundLockTimeout, fl); return SpiGetInt(pvParam, &gspv.dwForegroundLockTimeout, fl);
case SPI_SETFOREGROUNDLOCKTIMEOUT: case SPI_SETFOREGROUNDLOCKTIMEOUT:
return SpiSetszInt(&gspv.dwForegroundLockTimeout, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.dwForegroundLockTimeout, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETACTIVEWNDTRKTIMEOUT: case SPI_GETACTIVEWNDTRKTIMEOUT:
return SpiGetInt(pvParam, &gspv.dwActiveTrackingTimeout, fl); return SpiGetInt(pvParam, &gspv.dwActiveTrackingTimeout, fl);
case SPI_SETACTIVEWNDTRKTIMEOUT: case SPI_SETACTIVEWNDTRKTIMEOUT:
return SpiSetszInt(&gspv.dwActiveTrackingTimeout, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.dwActiveTrackingTimeout, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETFOREGROUNDFLASHCOUNT: case SPI_GETFOREGROUNDFLASHCOUNT:
return SpiGetInt(pvParam, &gspv.dwForegroundFlashCount, fl); return SpiGetInt(pvParam, &gspv.dwForegroundFlashCount, fl);
case SPI_SETFOREGROUNDFLASHCOUNT: case SPI_SETFOREGROUNDFLASHCOUNT:
return SpiSetszInt(&gspv.dwForegroundFlashCount, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.dwForegroundFlashCount, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETCARETWIDTH: case SPI_GETCARETWIDTH:
return SpiGetInt(pvParam, &gspv.dwCaretWidth, fl); return SpiGetInt(pvParam, &gspv.dwCaretWidth, fl);
case SPI_SETCARETWIDTH: case SPI_SETCARETWIDTH:
return SpiSetszInt(&gspv.dwCaretWidth, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.dwCaretWidth, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETMOUSECLICKLOCKTIME: case SPI_GETMOUSECLICKLOCKTIME:
return SpiGetInt(pvParam, &gspv.dwMouseClickLockTime, fl); return SpiGetInt(pvParam, &gspv.dwMouseClickLockTime, fl);
case SPI_SETMOUSECLICKLOCKTIME: case SPI_SETMOUSECLICKLOCKTIME:
return SpiSetszInt(&gspv.dwMouseClickLockTime, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.dwMouseClickLockTime, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETFONTSMOOTHINGTYPE: case SPI_GETFONTSMOOTHINGTYPE:
return SpiGetInt(pvParam, &gspv.uiFontSmoothingType, fl); return SpiGetInt(pvParam, &gspv.uiFontSmoothingType, fl);
case SPI_SETFONTSMOOTHINGTYPE: case SPI_SETFONTSMOOTHINGTYPE:
return SpiSetszInt(&gspv.uiFontSmoothingType, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.uiFontSmoothingType, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETFONTSMOOTHINGCONTRAST: case SPI_GETFONTSMOOTHINGCONTRAST:
return SpiGetInt(pvParam, &gspv.uiFontSmoothingContrast, fl); return SpiGetInt(pvParam, &gspv.uiFontSmoothingContrast, fl);
case SPI_SETFONTSMOOTHINGCONTRAST: case SPI_SETFONTSMOOTHINGCONTRAST:
return SpiSetszInt(&gspv.uiFontSmoothingContrast, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.uiFontSmoothingContrast, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETFOCUSBORDERWIDTH: case SPI_GETFOCUSBORDERWIDTH:
return SpiGetInt(pvParam, &gspv.uiFocusBorderWidth, fl); return SpiGetInt(pvParam, &gspv.uiFocusBorderWidth, fl);
case SPI_SETFOCUSBORDERWIDTH: case SPI_SETFOCUSBORDERWIDTH:
return SpiSetszInt(&gspv.uiFocusBorderWidth, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.uiFocusBorderWidth, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETFOCUSBORDERHEIGHT: case SPI_GETFOCUSBORDERHEIGHT:
return SpiGetInt(pvParam, &gspv.uiFocusBorderHeight, fl); return SpiGetInt(pvParam, &gspv.uiFocusBorderHeight, fl);
case SPI_SETFOCUSBORDERHEIGHT: case SPI_SETFOCUSBORDERHEIGHT:
return SpiSetszInt(&gspv.uiFocusBorderHeight, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.uiFocusBorderHeight, uiParam, KEY_MOUSE, L"", fl);
case SPI_GETFONTSMOOTHINGORIENTATION: case SPI_GETFONTSMOOTHINGORIENTATION:
return SpiGetInt(pvParam, &gspv.uiFontSmoothingOrientation, fl); return SpiGetInt(pvParam, &gspv.uiFontSmoothingOrientation, fl);
case SPI_SETFONTSMOOTHINGORIENTATION: case SPI_SETFONTSMOOTHINGORIENTATION:
return SpiSetszInt(&gspv.uiFontSmoothingOrientation, uiParam, KEY_MOUSE, L"", fl); return SpiSetInt(&gspv.uiFontSmoothingOrientation, uiParam, KEY_MOUSE, L"", fl);
/* The following are undocumented, but valid SPI values */ /* The following are undocumented, but valid SPI values */
case 0x1010: case 0x1010: