-/*
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Display Control Panel
* FILE: dll/cpl/desk/screensaver.c
* PURPOSE: Screen saver property page
- *
+ *
* PROGRAMMERS: Trevor McCort (lycan359@gmail.com)
* Ged Murphy (gedmurphy@reactos.org)
*/
BufSize);
if (lpBuf)
{
- Ret = RegQueryValueEx(hKey,
+ Ret = RegQueryValueEx(hKey,
lpValue,
0,
&Type,
}
RegCloseKey(hKey);
-
+
return lpBuf;
}
if (pGlobalData->Selection > 0)
{
- _stprintf(szCmdline,
+ _stprintf(szCmdline,
_T("%s /p %u"),
pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename,
hPreview);
si.cb = sizeof(si);
ZeroMemory(&pGlobalData->PrevWindowPi, sizeof(pGlobalData->PrevWindowPi));
- if (!CreateProcess(NULL,
- szCmdline,
- NULL,
- NULL,
- FALSE,
- 0,
- NULL,
- NULL,
- &si,
+ if (!CreateProcess(NULL,
+ szCmdline,
+ NULL,
+ NULL,
+ FALSE,
+ 0,
+ NULL,
+ NULL,
+ &si,
&pGlobalData->PrevWindowPi))
{
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
0,
0,
PM_REMOVE))
- {
+ {
if (msg.message == WM_QUIT)
return FALSE;
if (Ret == (WAIT_OBJECT_0))
{
return TRUE;
- }
+ }
}
}
if (pGlobalData->Selection < 1)
return;
- _stprintf(szCmdline,
+ _stprintf(szCmdline,
_T("%s /c:%u"),
pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename,
hwndDlg);
pGlobalData->PrevWindowPi.hThread = pGlobalData->PrevWindowPi.hProcess = NULL;
}
- _stprintf(szCmdline,
+ _stprintf(szCmdline,
_T("%s /s"),
pGlobalData->ScreenSaverItems[pGlobalData->Selection].szFilename);
hModule = LoadLibraryEx(filename,
NULL,
- DONT_RESOLVE_DLL_REFERENCES);
+ DONT_RESOLVE_DLL_REFERENCES | LOAD_LIBRARY_AS_DATAFILE);
if (hModule)
{
LoadString(hModule,
}
else
{
- _tcscpy(ScreenSaverItem->szDisplayName, _T("err"));
+ _tcscpy(ScreenSaverItem->szDisplayName, _T("Unknown"));
}
_tcscpy(ScreenSaverItem->szFilename, filename);
{
HKEY regKey;
- if (RegOpenKeyEx(HKEY_CURRENT_USER,
+ if (RegOpenKeyEx(HKEY_CURRENT_USER,
_T("Control Panel\\Desktop"),
- 0,
- KEY_ALL_ACCESS,
+ 0,
+ KEY_ALL_ACCESS,
®Key) == ERROR_SUCCESS)
{
INT Time;
/* set the screensaver */
if (pGlobalData->ScreenSaverItems[pGlobalData->Selection].bIsScreenSaver)
{
- RegSetValueEx(regKey,
+ RegSetValueEx(regKey,
_T("SCRNSAVE.EXE"),
0,
REG_SZ,
}
/* set the screensaver time delay */
- Time = GetDlgItemInt(hwndDlg,
+ Time = GetDlgItemInt(hwndDlg,
IDC_SCREENS_TIMEDELAY,
&bRet,
FALSE);
}
-static BOOL
+static BOOL
OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData)
{
LPTSTR lpCurSs;
HWND hwndSSCombo = GetDlgItem(hwndDlg, IDC_SCREENS_LIST);
INT Num;
- pGlobalData = HeapAlloc(GetProcessHeap(),
- HEAP_ZERO_MEMORY,
+ pGlobalData = HeapAlloc(GetProcessHeap(),
+ HEAP_ZERO_MEMORY,
sizeof(GLOBAL_DATA));
if (!pGlobalData)
{
if (bFound)
{
- Num = SendMessage(hwndSSCombo,
+ Num = SendMessage(hwndSSCombo,
CB_FINDSTRINGEXACT,
-1,
(LPARAM)pGlobalData->ScreenSaverItems[i].szDisplayName);
}
break;
}
-
+
case IDC_SCREENS_TIMEDELAY:
{
PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
case PSN_SETACTIVE:
{
+ /* activate screen saver support */
+ SystemParametersInfoW(SPI_SETSCREENSAVEACTIVE, TRUE, 0, SPIF_SENDCHANGE);
SetScreenSaverPreviewBox(hwndDlg, pGlobalData);
break;
}
case PSN_KILLACTIVE:
{
+ /* Disable screensaver support */
+ SystemParametersInfoW(SPI_SETSCREENSAVEACTIVE, FALSE, 0, SPIF_SENDCHANGE);
if (pGlobalData->PrevWindowPi.hProcess)
{
TerminateProcess(pGlobalData->PrevWindowPi.hProcess, 0);