13#define MAX_SCREENSAVERS 100
45 _T(
"Control Panel\\Desktop"),
161 draw->rcItem.left, draw->rcItem.top,
162 draw->rcItem.right - draw->rcItem.left + 1,
163 draw->rcItem.bottom - draw->rcItem.top + 1,
180 HWND hPreview =
pData->ScreenSaverPreviewParent;
183 TCHAR szCmdline[2048];
186 if (
pData->PrevWindowPi.hProcess)
191 pData->PrevWindowPi.hThread =
pData->PrevWindowPi.hProcess =
NULL;
195 if (
pData->Selection < 1)
200 pData->ScreenSaverItems[
pData->Selection].szFilename,
220 &
pData->PrevWindowPi))
222 pData->PrevWindowPi.hThread =
pData->PrevWindowPi.hProcess =
NULL;
272 TCHAR szCmdline[2048];
274 if (
pData->Selection < 1)
279 pData->ScreenSaverItems[
pData->Selection].szFilename,
299 if (
pData->PrevWindowPi.hProcess)
304 pData->PrevWindowPi.hThread =
pData->PrevWindowPi.hProcess =
NULL;
324 TCHAR szCmdline[2048];
326 if (
pData->Selection < 1)
330 if (
pData->PrevWindowPi.hProcess)
335 pData->PrevWindowPi.hThread =
pData->PrevWindowPi.hProcess =
NULL;
340 pData->ScreenSaverItems[
pData->Selection].szFilename);
375 _T(
"Control Panel\\Desktop"),
381 _T(
"ScreenSaverIsSecure"),
390 if (
_ttoi(szBuffer) == 1)
424 (
LPARAM)ScreenSaverItem->szDisplayName);
433 pData->ScreenSaverCount++;
451 ScreenSaverItem =
pData->ScreenSaverItems +
pData->ScreenSaverCount;
509 TEXT(
"%s\\*.scr"), pszSearchPath);
527 TEXT(
"%s\\%s"), pszSearchPath,
fd.cFileName);
550 pData->ScreenSaverCount = 0;
553 ScreenSaverItem =
pData->ScreenSaverItems;
567 if (pBackSlash !=
NULL)
569 *pBackSlash =
_T(
'\0');
575 if (pBackSlash !=
NULL &&
_tcsicmp(szSearchPath, szLocalPath) != 0)
580 if (pBackSlash !=
NULL &&
_tcsicmp(szSearchPath, szLocalPath) != 0)
591 _T(
"Control Panel\\Desktop"),
602 if (
pData->ScreenSaverItems[
pData->Selection].bIsScreenSaver)
630 _T(
"ScreenSaverIsSecure"),
703 pData->Selection = -1;
724 for (
i = 0;
i <
pData->ScreenSaverCount;
i++)
739 i =
pData->ScreenSaverCount - 1;
798 if (
pData->ScreenSaverPreviewParent)
807 if (
pData->PrevWindowPi.hProcess)
914 if (
pData->PrevWindowPi.hProcess)
919 pData->PrevWindowPi.hThread =
pData->PrevWindowPi.hProcess =
NULL;
#define RegCloseKey(hKey)
#define IDC_SCREENS_PREVIEW
#define IDC_SCREENS_USEPASSCHK
#define IDC_SCREENS_TIMEDELAY
#define IDC_SCREENS_POWER_BUTTON
#define IDC_SCREENS_TESTSC
#define IDC_SCREENS_SETTINGS
static LPTSTR GetCurrentScreenSaverValue(LPTSTR lpValue)
static VOID ShowScreenSaverPreview(IN LPDRAWITEMSTRUCT draw, IN PDATA pData)
static VOID SelectionChanged(HWND hwndDlg, PDATA pData)
static VOID EnumScreenSavers(_In_ HWND hwndScreenSavers, _In_ PDATA pData)
static VOID WaitForSettingsDialog(HWND hwndDlg, HANDLE hProcess)
static VOID ScreenSaverPreview(HWND hwndDlg, PDATA pData)
static VOID SetScreenSaver(HWND hwndDlg, PDATA pData)
static BOOL AddScreenSaverItem(_In_ HWND hwndScreenSavers, _In_ PDATA pData, _In_ SCREEN_SAVER_ITEM *ScreenSaverItem)
static VOID SearchScreenSavers(_In_ HWND hwndScreenSavers, _In_ PDATA pData, _In_ LPCTSTR pszSearchPath)
static VOID SetScreenSaverPreviewBox(HWND hwndDlg, PDATA pData)
static BOOL OnInitDialog(HWND hwndDlg, PDATA pData)
static VOID ScreenSaverConfig(HWND hwndDlg, PDATA pData)
static const TCHAR szPreviewWndClass[]
INT_PTR CALLBACK ScreenSaverPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static VOID CheckRegScreenSaverIsSecure(HWND hwndDlg)
LRESULT CALLBACK RedrawSubclassProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
static BOOL AddScreenSaver(_In_ HWND hwndScreenSavers, _In_ PDATA pData, _In_ LPCTSTR pszFilePath, _In_ LPCTSTR pszFileName)
#define INVALID_HANDLE_VALUE
#define HeapFree(x, y, z)
BOOL WINAPI FindClose(HANDLE hFindFile)
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
UINT WINAPI DECLSPEC_HOTPATCH WinExec(LPCSTR lpCmdLine, UINT uCmdShow)
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
_In_ BOOL _In_ HANDLE hProcess
static PLARGE_INTEGER Time
#define FILE_ATTRIBUTE_HIDDEN
_In_ ULONG _In_ ULONG _In_ ULONG Length
#define PropSheet_Changed(d, w)
static WCHAR szFilePath[]
TCHAR szFilename[MAX_PATH]
SCREEN_SAVER_ITEM ScreenSaverItems[MAX_SCREENSAVERS]
PROCESS_INFORMATION PrevWindowPi
HWND ScreenSaverPreviewParent
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
TW_UINT32 TW_UINT16 TW_UINT16 MSG
BOOL WINAPI GdiTransparentBlt(HDC hdcDst, int xDst, int yDst, int wDst, int hDst, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, UINT crTransparent)
WORD WORD PSZ PSZ pszFileName
#define GetWindowsDirectory
#define GetSystemDirectory
#define LOAD_LIBRARY_AS_DATAFILE
#define DONT_RESOLVE_DLL_REFERENCES
#define GetModuleFileName
HGDIOBJ WINAPI GetStockObject(_In_ int)
HGDIOBJ WINAPI SelectObject(_In_ HDC, _In_ HGDIOBJ)
HDC WINAPI CreateCompatibleDC(_In_opt_ HDC hdc)
int WINAPI FillRect(HDC, LPCRECT, HBRUSH)
HBRUSH WINAPI CreateSolidBrush(_In_ COLORREF)
BOOL WINAPI DeleteDC(_In_ HDC)
#define HKEY_CURRENT_USER
struct tagDRAWITEMSTRUCT * LPDRAWITEMSTRUCT
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define SPI_SETSCREENSAVEACTIVE
#define CB_FINDSTRINGEXACT
DWORD WINAPI MsgWaitForMultipleObjects(_In_ DWORD nCount, _In_reads_opt_(nCount) CONST HANDLE *pHandles, _In_ BOOL fWaitAll, _In_ DWORD dwMilliseconds, _In_ DWORD dwWakeMask)
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define SPIF_UPDATEINIFILE
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
struct tagNMHDR * LPNMHDR
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
HWND WINAPI GetParent(_In_ HWND)
UINT WINAPI GetDlgItemInt(_In_ HWND, _In_ int, _Out_opt_ PBOOL, _In_ BOOL)
LRESULT(CALLBACK * WNDPROC)(HWND, UINT, WPARAM, LPARAM)
#define SystemParametersInfo
#define SendDlgItemMessage
BOOL WINAPI IsWindowVisible(_In_ HWND)
BOOL WINAPI DestroyWindow(_In_ HWND)
#define SPI_SETSCREENSAVETIMEOUT
BOOL WINAPI MoveWindow(_In_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ BOOL)
BOOL WINAPI EndDialog(_In_ HWND, _In_ INT_PTR)