ReactOS 0.4.16-dev-1204-gb627a42
desk.c File Reference
#include "desk.h"
#include <shellapi.h>
#include <cplext.h>
#include <winnls.h>
#include <debug.h>
Include dependency graph for desk.c:

Go to the source code of this file.

Macros

#define NDEBUG
 

Functions

VOID WINAPI Control_RunDLLW (HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow)
 
static LONG APIENTRY DisplayApplet (HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK ThemesPageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK BackgroundPageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK ScreenSaverPageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK AppearancePageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK SettingsPageProc (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
UINT CALLBACK SettingsPageCallbackProc (HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp)
 
HMENU LoadPopupMenu (IN HINSTANCE hInstance, IN LPCTSTR lpMenuName)
 
static BOOL CALLBACK DisplayAppletPropSheetAddPage (HPROPSHEETPAGE hpage, LPARAM lParam)
 
static BOOL InitPropSheetPage (PROPSHEETHEADER *ppsh, WORD idDlg, DLGPROC DlgProc, LPFNPSPCALLBACK pfnCallback)
 
static int CALLBACK PropSheetProc (HWND hwndDlg, UINT uMsg, LPARAM lParam)
 
LONG CALLBACK CPlApplet (HWND hwndCPl, UINT uMsg, LPARAM lParam1, LPARAM lParam2)
 
void WINAPI InstallScreenSaverW (IN HWND hWindow, IN HANDLE hInstance, IN LPCWSTR pszFile, IN UINT nCmdShow)
 
void WINAPI InstallScreenSaverA (IN HWND hWindow, IN HANDLE hInstance, IN LPCSTR pszFile, IN UINT nCmdShow)
 
BOOL WINAPI DllMain (HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpvReserved)
 

Variables

HINSTANCE hApplet = NULL
 
HWND hCPLWindow = NULL
 
APPLET Applets []
 
struct {
   WORD   idDlg
 
   DLGPROC   DlgProc
 
   LPFNPSPCALLBACK   Callback
 
   LPWSTR   Name
 
PropPages []
 

Macro Definition Documentation

◆ NDEBUG

#define NDEBUG

Definition at line 16 of file desk.c.

Function Documentation

◆ AppearancePageProc()

INT_PTR CALLBACK AppearancePageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 216 of file appearance.c.

217{
218 GLOBALS *g;
219 LPNMHDR lpnm;
220
221 g = (GLOBALS*)GetWindowLongPtr(hwndDlg, DWLP_USER);
222
223 switch (uMsg)
224 {
225 case WM_INITDIALOG:
226 return AppearancePage_OnInit(hwndDlg);
227
228 case WM_DESTROY:
229 AppearancePage_OnDestroy(hwndDlg, g);
230 break;
231
232 case WM_COMMAND:
233 if (g == NULL || g->bInitializing)
234 return FALSE;
235
236 switch (LOWORD(wParam))
237 {
240 hwndDlg, EffAppearanceDlgProc, (LPARAM)g) == IDOK)
241 {
242 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
243 g->Scheme = g->SchemeAdv;
244 g->bSchemeChanged = TRUE;
245 }
246 break;
247
250 hwndDlg, AdvAppearanceDlgProc, (LPARAM)g) == IDOK)
251 {
252 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
253 g->bSchemeChanged = TRUE;
254 g->Scheme = g->SchemeAdv;
255 g_GlobalData.desktop_color = g->Scheme.crColor[COLOR_DESKTOP];
256
258 }
259 break;
260
263 {
264 g->ActiveTheme.Color = (PTHEME_STYLE)GetSelectedData(hwndDlg, IDC_APPEARANCE_COLORSCHEME);
265 if (g->ActiveTheme.Color->ChildStyle != NULL)
266 g->ActiveTheme.Size = g->ActiveTheme.Color->ChildStyle;
267
268 g->bSchemeChanged = TRUE;
269 if (g->ActiveTheme.ThemeActive)
270 g->bThemeChanged = TRUE;
271
272 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
273
275 AppearancePage_ShowSizes(hwndDlg, g);
277 }
278 break;
279
282 {
284
285 if (g->ClassicTheme.Theme == pTheme)
286 g->ActiveTheme = g->ClassicTheme;
287 else
288 {
289 g->ActiveTheme.Theme = pTheme;
290 g->ActiveTheme.Size = pTheme->SizesList;
291 g->ActiveTheme.Color = pTheme->ColoursList;
292 g->ActiveTheme.ThemeActive = TRUE;
293 }
294
295 g->bThemeChanged = TRUE;
296 g->bSchemeChanged = TRUE;
297
298 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
299
301 AppearancePage_ShowSizes(hwndDlg, g);
304 }
305 break;
306
309 {
310 g->ActiveTheme.Size = (PTHEME_STYLE)GetSelectedData(hwndDlg, IDC_APPEARANCE_SIZE);
311 g->bSchemeChanged = TRUE;
312 if (g->ActiveTheme.ThemeActive)
313 g->bThemeChanged = TRUE;
314
315 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
316
319 }
320 }
321 break;
322
323 case WM_NOTIFY:
324 lpnm = (LPNMHDR)lParam;
325 switch (lpnm->code)
326 {
327 case PSN_APPLY:
328
329 if (g->bThemeChanged)
330 {
331 ActivateTheme(&g->ActiveTheme);
332 }
333
334 if (g->bSchemeChanged)
335 {
336 ApplyScheme(&g->Scheme, &g->ActiveTheme);
337 if (g->ActiveTheme.ThemeActive == FALSE)
338 g->ClassicTheme = g->ActiveTheme;
339 }
340
342 g->bThemeChanged = FALSE;
343 g->bSchemeChanged = FALSE;
345 return TRUE;
346
347 case PSN_KILLACTIVE:
349 return TRUE;
350
351 case PSN_SETACTIVE:
352 if (g->Scheme.crColor[COLOR_DESKTOP] != g_GlobalData.desktop_color)
353 {
354 g->Scheme.crColor[COLOR_DESKTOP] = g_GlobalData.desktop_color;
356 }
357 break;
358 }
359 break;
360 }
361
362 return FALSE;
363}
INT_PTR CALLBACK AdvAppearanceDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: advappdlg.c:503
static void AppearancePage_UpdateThemePreview(HWND hwndDlg, GLOBALS *g)
Definition: appearance.c:16
static INT_PTR AppearancePage_OnInit(HWND hwndDlg)
Definition: appearance.c:97
static VOID AppearancePage_OnDestroy(HWND hwndDlg, GLOBALS *g)
Definition: appearance.c:197
static void AppearancePage_ShowSizes(HWND hwndDlg, GLOBALS *g)
Definition: appearance.c:81
static PVOID GetSelectedData(HWND hwndDlg, int nIDDlgItem)
Definition: appearance.c:203
static void AppearancePage_LoadSelectedScheme(HWND hwndDlg, GLOBALS *g)
Definition: appearance.c:35
static void AppearancePage_ShowColorSchemes(HWND hwndDlg, GLOBALS *g)
Definition: appearance.c:72
struct _THEME_STYLE * PTHEME_STYLE
VOID ApplyScheme(PCOLOR_SCHEME scheme, PTHEME_SELECTION pSelectedTheme)
struct _THEME * PTHEME
BOOL ActivateTheme(PTHEME_SELECTION pSelectedTheme)
INT_PTR CALLBACK EffAppearanceDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: effappdlg.c:128
GLOBAL_DATA g_GlobalData
Definition: background.c:71
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
HINSTANCE hApplet
Definition: access.c:17
#define IDC_APPEARANCE_VISUAL_STYLE
Definition: resource.h:102
#define IDC_APPEARANCE_ADVANCED
Definition: resource.h:101
#define IDC_APPEARANCE_EFFECTS
Definition: resource.h:100
#define IDC_APPEARANCE_COLORSCHEME
Definition: resource.h:98
#define IDD_ADVAPPEARANCE
Definition: resource.h:14
#define IDD_EFFAPPEARANCE
Definition: resource.h:15
#define IDC_APPEARANCE_SIZE
Definition: resource.h:103
GLboolean GLboolean g
Definition: glext.h:6204
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define LOWORD(l)
Definition: pedump.c:82
#define PropSheet_Changed(d, w)
Definition: prsht.h:344
#define PSN_KILLACTIVE
Definition: prsht.h:116
#define PSN_APPLY
Definition: prsht.h:117
#define PSNRET_NOERROR
Definition: prsht.h:129
#define PSN_SETACTIVE
Definition: prsht.h:115
#define WM_NOTIFY
Definition: richedit.h:61
COLORREF desktop_color
Definition: desk.h:163
THEME_STYLE * SizesList
Definition: appearance.h:93
THEME_STYLE * ColoursList
Definition: appearance.h:92
UINT code
Definition: winuser.h:3235
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
#define HIWORD(l)
Definition: typedefs.h:247
LONG_PTR LPARAM
Definition: windef.h:208
#define DWLP_USER
Definition: winuser.h:883
#define WM_COMMAND
Definition: winuser.h:1759
#define DialogBoxParam
Definition: winuser.h:5849
#define WM_INITDIALOG
Definition: winuser.h:1758
#define IDOK
Definition: winuser.h:841
#define CBN_SELCHANGE
Definition: winuser.h:1998
#define COLOR_DESKTOP
Definition: winuser.h:925
struct tagNMHDR * LPNMHDR
HWND WINAPI GetParent(_In_ HWND)
#define DWLP_MSGRESULT
Definition: winuser.h:881
#define WM_DESTROY
Definition: winuser.h:1628

◆ BackgroundPageProc()

INT_PTR CALLBACK BackgroundPageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 1184 of file background.c.

1188{
1190 struct GdiplusStartupInput gdipStartup;
1191
1193
1194 switch (uMsg)
1195 {
1196 case WM_INITDIALOG:
1199 gdipStartup.GdiplusVersion = 1;
1200 gdipStartup.DebugEventCallback = NULL;
1201 gdipStartup.SuppressBackgroundThread = FALSE;
1202 gdipStartup.SuppressExternalCodecs = FALSE;
1203 GdiplusStartup(&pData->gdipToken, &gdipStartup, NULL);
1204 InitBackgroundDialog(hwndDlg, pData);
1205 InitDesktopSettings(&pData->desktopData);
1206 break;
1207
1208 case WM_COMMAND:
1209 {
1210 DWORD controlId = LOWORD(wParam);
1212
1213 switch (controlId)
1214 {
1215 case IDC_COLOR_BUTTON:
1216 if (command == BN_CLICKED)
1217 OnColorButton(hwndDlg, pData);
1218 break;
1219
1220 case IDC_BROWSE_BUTTON:
1221 if (command == BN_CLICKED)
1222 OnBrowseButton(hwndDlg, pData);
1223 break;
1224
1226 if (command == CBN_SELCHANGE)
1227 {
1228 pData->placementSelection = (int)SendDlgItemMessage(hwndDlg, IDC_PLACEMENT_COMBO, CB_GETCURSEL, 0, 0);
1229
1231
1232 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
1233 }
1234 break;
1235
1236 case IDC_DESKTOP_CUSTOM:
1237 if (command == BN_CLICKED)
1238 OnCustomButton(hwndDlg, pData);
1239 break;
1240 }
1241 } break;
1242
1243 case WM_DRAWITEM:
1244 {
1246
1247 if (drawItem->CtlID == IDC_BACKGROUND_PREVIEW)
1248 DrawBackgroundPreview(drawItem, pData);
1249 }
1250 break;
1251
1252 case WM_NOTIFY:
1253 {
1254 LPNMHDR lpnm = (LPNMHDR)lParam;
1255
1256 switch(lpnm->code)
1257 {
1258 case PSN_APPLY:
1259 if (pData->bWallpaperChanged)
1261 if (pData->bClrBackgroundChanged)
1262 SetDesktopBackColor(hwndDlg, pData);
1263 if (pData->desktopData.bSettingsChanged)
1264 SetDesktopSettings(&pData->desktopData);
1266 return TRUE;
1267
1268 case LVN_ITEMCHANGED:
1269 {
1271
1272 if ((nm->uNewState & LVIS_SELECTED) == 0)
1273 return FALSE;
1274
1275 ListViewItemChanged(hwndDlg, pData, nm->iItem);
1276 }
1277 break;
1278
1279 case NM_CUSTOMDRAW:
1280 if (lpnm->idFrom == IDC_COLOR_BUTTON)
1281 {
1282 return SetDlgMsgResult(hwndDlg, 0, ClrBtn_CustomDraw((NMCUSTOMDRAW*)lpnm,
1284 }
1285 break;
1286 }
1287 }
1288 break;
1289
1290 case WM_DESTROY:
1291 if (pData->pWallpaperBitmap != NULL)
1292 DibFreeImage(pData->pWallpaperBitmap);
1293
1294 GdiplusShutdown(pData->gdipToken);
1296 break;
1297 }
1298
1299 return FALSE;
1300}
static VOID OnBrowseButton(HWND hwndDlg, PBACKGROUND_DATA pData)
Definition: background.c:614
static VOID InitBackgroundDialog(HWND hwndDlg, PBACKGROUND_DATA pData)
Definition: background.c:455
struct _BACKGROUND_DATA * PBACKGROUND_DATA
static VOID SetWallpaper(PBACKGROUND_DATA pData)
Definition: background.c:994
struct _BACKGROUND_DATA BACKGROUND_DATA
static VOID DrawBackgroundPreview(LPDRAWITEMSTRUCT draw, PBACKGROUND_DATA pData)
Definition: background.c:783
static VOID OnColorButton(HWND hwndDlg, PBACKGROUND_DATA pData)
Definition: background.c:529
static VOID ListViewItemChanged(HWND hwndDlg, PBACKGROUND_DATA pData, int itemIndex)
Definition: background.c:749
static VOID SetDesktopBackColor(HWND hwndDlg, PBACKGROUND_DATA pData)
Definition: background.c:1118
static VOID OnCustomButton(HWND hwndDlg, PBACKGROUND_DATA pData)
Definition: background.c:1151
VOID InitDesktopSettings(PDESKTOP_DATA pData)
Definition: desktop.c:63
VOID SetDesktopSettings(PDESKTOP_DATA pData)
Definition: desktop.c:181
UINT ClrBtn_CustomDraw(NMCUSTOMDRAW *pCD, COLORREF Color)
Definition: misc.c:83
VOID DibFreeImage(PDIBITMAP lpBitmap)
Definition: dibitmap.c:90
#define IDC_COLOR_BUTTON
Definition: resource.h:32
#define IDC_BACKGROUND_PREVIEW
Definition: resource.h:30
#define IDC_DESKTOP_CUSTOM
Definition: resource.h:36
#define IDC_PLACEMENT_COMBO
Definition: resource.h:33
#define IDC_BROWSE_BUTTON
Definition: resource.h:31
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
unsigned long DWORD
Definition: ntddk_ex.h:95
Status WINAPI GdiplusStartup(ULONG_PTR *token, const struct GdiplusStartupInput *input, struct GdiplusStartupOutput *output)
Definition: gdiplus.c:81
void WINAPI GdiplusShutdown(ULONG_PTR)
#define NM_CUSTOMDRAW
Definition: commctrl.h:137
#define LVIS_SELECTED
Definition: commctrl.h:2324
struct tagNMLISTVIEW * LPNMLISTVIEW
#define LVN_ITEMCHANGED
Definition: commctrl.h:3136
UINT_PTR idFrom
Definition: winuser.h:3234
UINT uNewState
Definition: commctrl.h:3041
TW_UINT32 TW_UINT16 TW_UINT16 TW_MEMREF pData
Definition: twain.h:1830
#define _T(x)
Definition: vfdio.h:22
#define SetDlgMsgResult(hwnd, msg, result)
Definition: windowsx.h:518
struct tagDRAWITEMSTRUCT * LPDRAWITEMSTRUCT
#define HWND_BROADCAST
Definition: winuser.h:1215
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define WM_DRAWITEM
Definition: winuser.h:1664
#define WM_SETTINGCHANGE
Definition: winuser.h:1648
#define SendMessage
Definition: winuser.h:5928
#define BN_CLICKED
Definition: winuser.h:1944
BOOL WINAPI InvalidateRect(_In_opt_ HWND, _In_opt_ LPCRECT, _In_ BOOL)
#define CB_GETCURSEL
Definition: winuser.h:1962
#define SendDlgItemMessage
Definition: winuser.h:5927

◆ Control_RunDLLW()

VOID WINAPI Control_RunDLLW ( HWND  hWnd,
HINSTANCE  hInst,
LPCWSTR  cmd,
DWORD  nCmdShow 
)

Definition at line 1177 of file control.c.

1178{
1179 CPanel panel;
1180
1181 TRACE("(%p, %p, %s, 0x%08x)\n",
1182 hWnd, hInst, debugstr_w(cmd), nCmdShow);
1183
1184#ifndef __REACTOS__
1185 memset(&panel, 0, sizeof(panel));
1186 list_init( &panel.applets );
1187#endif
1188
1189 if (!cmd || !*cmd) {
1190 Control_DoWindow(&panel, hWnd, hInst);
1191 } else {
1192 Control_DoLaunch(&panel, hWnd, cmd);
1193 }
1194}
HWND hWnd
Definition: settings.c:17
static void list_init(struct list_entry *head)
Definition: list.h:51
static void Control_DoWindow(CPanel *panel, HWND hWnd, HINSTANCE hInst)
Definition: control.c:703
static void Control_DoLaunch(CPanel *panel, HWND hWnd, LPCWSTR wszCmd)
Definition: control.c:867
HINSTANCE hInst
Definition: dxdiag.c:13
#define debugstr_w
Definition: kernel32.h:32
#define memset(x, y, z)
Definition: compat.h:39
#define TRACE(s)
Definition: solgame.cpp:4
Definition: cpanel.h:56
struct list applets
Definition: cpanel.h:57
Definition: ftp_var.h:139

Referenced by InstallScreenSaverW().

◆ CPlApplet()

LONG CALLBACK CPlApplet ( HWND  hwndCPl,
UINT  uMsg,
LPARAM  lParam1,
LPARAM  lParam2 
)

Definition at line 268 of file desk.c.

269{
270 UINT i = (UINT)lParam1;
271
272 switch (uMsg)
273 {
274 case CPL_INIT:
275 return TRUE;
276
277 case CPL_GETCOUNT:
278 return _countof(Applets);
279
280 case CPL_INQUIRE:
281 if (i < _countof(Applets))
282 {
283 CPLINFO *CPlInfo = (CPLINFO*)lParam2;
284 CPlInfo->lData = 0;
285 CPlInfo->idIcon = Applets[i].idIcon;
286 CPlInfo->idName = Applets[i].idName;
287 CPlInfo->idInfo = Applets[i].idDescription;
288 }
289 else
290 {
291 return TRUE;
292 }
293 break;
294
295 case CPL_DBLCLK:
296 if (i < _countof(Applets))
297 Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
298 else
299 return TRUE;
300 break;
301
302 case CPL_STARTWPARMSW:
303 if (i < _countof(Applets))
304 return Applets[i].AppletProc(hwndCPl, uMsg, lParam1, lParam2);
305 break;
306 }
307
308 return FALSE;
309}
#define CPL_INQUIRE
Definition: cpl.h:14
#define CPL_DBLCLK
Definition: cpl.h:16
#define CPL_STARTWPARMSW
Definition: cpl.h:21
#define CPL_INIT
Definition: cpl.h:12
#define CPL_GETCOUNT
Definition: cpl.h:13
APPLET Applets[]
Definition: desk.c:41
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
unsigned int UINT
Definition: ndis.h:50
#define _countof(array)
Definition: sndvol32.h:70
int idDescription
Definition: hotplug.h:37
int idName
Definition: hotplug.h:36
int idIcon
Definition: hotplug.h:35
Definition: cpl.h:24
LONG_PTR lData
Definition: cpl.h:28
int idName
Definition: cpl.h:26
int idInfo
Definition: cpl.h:27
int idIcon
Definition: cpl.h:25

◆ DisplayApplet()

static LONG APIENTRY DisplayApplet ( HWND  hwnd,
UINT  uMsg,
LPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 153 of file desk.c.

154{
156 PROPSHEETHEADER psh;
157 HPSXA hpsxa = NULL;
158 UINT i;
159 LPWSTR *argv = NULL;
160 LPCWSTR pwszSelectedTab = NULL;
161 LPCWSTR pwszFile = NULL;
162 LPCWSTR pwszAction = NULL;
163 INT nPage = 0;
165
167
169
170 if (uMsg == CPL_STARTWPARMSW && lParam)
171 {
172 int argc;
173 int i;
174
175 nPage = _wtoi((PWSTR)lParam);
176
178
179 if (argv && argc)
180 {
181 for (i = 0; i<argc; i++)
182 {
183 if (argv[i][0] == L'@')
184 pwszSelectedTab = &argv[i][1];
185 else if (wcsncmp(argv[i], L"/Action:", 8) == 0)
186 pwszAction = &argv[i][8];
187 else if (wcsncmp(argv[i], L"/file:", 6) == 0)
188 pwszFile = &argv[i][6];
189 }
190 }
191 }
192
193 if(pwszAction && wcsncmp(pwszAction, L"ActivateMSTheme", 15) == 0)
194 {
195 ActivateThemeFile(pwszFile);
196 goto cleanup;
197 }
198
199 g_GlobalData.pwszFile = pwszFile;
200 g_GlobalData.pwszAction = pwszAction;
202
203 /* Initialize the monitor preview bitmap, used on multiple pages */
206 {
208
211 }
212
213 ZeroMemory(&psh, sizeof(psh));
214 psh.dwSize = sizeof(psh);
216 psh.hwndParent = hCPLWindow;
217 psh.hInstance = hApplet;
218 psh.pszIcon = MAKEINTRESOURCEW(IDC_DESK_ICON);
219 psh.pszCaption = MAKEINTRESOURCEW(IDS_CPLNAME);
220 psh.nPages = 0;
221 psh.nStartPage = 0;
222 psh.phpage = hpsp;
223 psh.pfnCallback = PropSheetProc;
224
225 /* Allow shell extensions to replace the background page */
227
228 for (i = 0; i < _countof(PropPages); i++)
229 {
230 if (pwszSelectedTab && _wcsicmp(pwszSelectedTab, PropPages[i].Name) == 0)
231 psh.nStartPage = i;
232
233 /* Override the background page if requested by a shell extension */
234 if (PropPages[i].idDlg == IDD_BACKGROUND && hpsxa != NULL &&
236 {
237 /* The shell extension added one or more pages to replace the background page.
238 Don't create the built-in page anymore! */
239 continue;
240 }
241
243 }
244
245 /* NOTE: Don't call SHAddFromPropSheetExtArray here because this applet only allows
246 replacing the background page but not extending the applet by more pages */
247
248 if (nPage != 0 && psh.nStartPage == 0)
249 psh.nStartPage = nPage;
250
251 PropertySheet(&psh);
252
253cleanup:
255
256 if (hpsxa != NULL)
258
259 if (argv)
261
262 return TRUE;
263}
static int argc
Definition: ServiceArgs.c:12
BOOL ActivateThemeFile(LPCWSTR pwszFile)
Definition: theme.c:1015
#define CPLPAGE_DISPLAY_BACKGROUND
Definition: cplext.h:8
WORD idDlg
Definition: desk.c:121
static BOOL InitPropSheetPage(PROPSHEETHEADER *ppsh, WORD idDlg, DLGPROC DlgProc, LPFNPSPCALLBACK pfnCallback)
Definition: desk.c:92
static int CALLBACK PropSheetProc(HWND hwndDlg, UINT uMsg, LPARAM lParam)
Definition: desk.c:135
static const struct @245 PropPages[]
DLGPROC DlgProc
Definition: desk.c:122
static BOOL CALLBACK DisplayAppletPropSheetAddPage(HPROPSHEETPAGE hpage, LPARAM lParam)
Definition: desk.c:79
LPWSTR Name
Definition: desk.c:124
HWND hCPLWindow
Definition: desk.c:38
HINSTANCE hApplet
Definition: desk.c:37
#define MAX_DESK_PAGES
Definition: desk.h:85
#define IDS_CPLNAME
Definition: resource.h:8
#define IDC_MONITOR
Definition: resource.h:29
#define IDC_DESK_ICON
Definition: resource.h:4
#define IDD_BACKGROUND
Definition: resource.h:10
static void cleanup(void)
Definition: main.c:1335
pKey DeleteObject()
HLOCAL NTAPI LocalFree(HLOCAL hMem)
Definition: heapmem.c:1594
_Check_return_ _CRTIMP int __cdecl _wtoi(_In_z_ const wchar_t *_Str)
#define TEXT(s)
Definition: k32.h:28
if(dx< 0)
Definition: linetemp.h:194
#define argv
Definition: mplay32.c:18
struct _PSP * HPROPSHEETPAGE
Definition: mstask.idl:90
#define UNREFERENCED_PARAMETER(P)
Definition: ntbasedef.h:329
#define L(x)
Definition: ntvdm.h:50
#define PROPSHEETHEADER
Definition: prsht.h:392
#define PSH_PROPTITLE
Definition: prsht.h:40
#define PSH_USECALLBACK
Definition: prsht.h:48
#define PropertySheet
Definition: prsht.h:400
#define PSH_USEICONID
Definition: prsht.h:42
#define REGSTR_PATH_CONTROLSFOLDER
Definition: regstr.h:76
_Check_return_ _CRTIMP int __cdecl _wcsicmp(_In_z_ const wchar_t *_Str1, _In_z_ const wchar_t *_Str2)
_Check_return_ _CRTIMP int __cdecl wcsncmp(_In_reads_or_z_(_MaxCount) const wchar_t *_Str1, _In_reads_or_z_(_MaxCount) const wchar_t *_Str2, _In_ size_t _MaxCount)
LPWSTR *WINAPI CommandLineToArgvW(LPCWSTR lpCmdline, int *numargs)
Definition: shell32_main.c:79
void WINAPI SHDestroyPropSheetExtArray(HPSXA hpsxa)
Definition: shellord.c:2396
UINT WINAPI SHReplaceFromPropSheetExtArray(HPSXA hpsxa, UINT uPageID, LPFNADDPROPSHEETPAGE lpfnReplaceWith, LPARAM lParam)
Definition: shellord.c:2365
HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface)
Definition: shellord.c:2249
Definition: bl.h:1331
LONG bmMonHeight
Definition: desk.h:168
LONG bmMonWidth
Definition: desk.h:167
LPCWSTR pwszFile
Definition: desk.h:164
LPCWSTR pwszAction
Definition: desk.h:165
HBITMAP hMonitorBitmap
Definition: desk.h:166
Definition: uimain.c:89
uint16_t * PWSTR
Definition: typedefs.h:56
int32_t INT
Definition: typedefs.h:58
_In_ WDFINTERRUPT _In_ PFN_WDF_INTERRUPT_SYNCHRONIZE Callback
Definition: wdfinterrupt.h:458
#define ZeroMemory
Definition: winbase.h:1753
_In_ LONG _In_ HWND hwnd
Definition: winddi.h:4023
int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_opt_(c) LPVOID pv)
#define HKEY_LOCAL_MACHINE
Definition: winreg.h:12
DWORD WINAPI GetSysColor(_In_ int)
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
HBITMAP WINAPI LoadBitmapW(_In_opt_ HINSTANCE, _In_ LPCWSTR)
Definition: cursoricon.c:2500
WCHAR * LPWSTR
Definition: xmlstorage.h:184
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185

◆ DisplayAppletPropSheetAddPage()

static BOOL CALLBACK DisplayAppletPropSheetAddPage ( HPROPSHEETPAGE  hpage,
LPARAM  lParam 
)
static

Definition at line 79 of file desk.c.

80{
82 if (ppsh != NULL && ppsh->nPages < MAX_DESK_PAGES)
83 {
84 ppsh->phpage[ppsh->nPages++] = hpage;
85 return TRUE;
86 }
87
88 return FALSE;
89}

Referenced by DisplayApplet(), and InitPropSheetPage().

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hInstDLL,
DWORD  dwReason,
LPVOID  lpvReserved 
)

Definition at line 451 of file desk.c.

452{
454
455 switch (dwReason)
456 {
459 RegisterPreviewControl(hInstDLL);
460// case DLL_THREAD_ATTACH:
461 hApplet = hInstDLL;
462 break;
463
465 UnregisterPreviewControl(hInstDLL);
467 break;
468 }
469
470 return TRUE;
471}
DWORD dwReason
Definition: misc.cpp:135
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define DLL_PROCESS_DETACH
Definition: compat.h:130
HRESULT WINAPI DECLSPEC_HOTPATCH CoInitializeEx(LPVOID lpReserved, DWORD dwCoInit)
Definition: compobj.c:2002
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
Definition: compobj.c:2067
static IN DWORD IN LPVOID lpvReserved
@ COINIT_APARTMENTTHREADED
Definition: objbase.h:278
BOOL RegisterPreviewControl(IN HINSTANCE hInstance)
Definition: preview.c:539
VOID UnregisterPreviewControl(IN HINSTANCE hInstance)
Definition: preview.c:555

◆ InitPropSheetPage()

static BOOL InitPropSheetPage ( PROPSHEETHEADER ppsh,
WORD  idDlg,
DLGPROC  DlgProc,
LPFNPSPCALLBACK  pfnCallback 
)
static

Definition at line 92 of file desk.c.

93{
94 HPROPSHEETPAGE hPage;
95 PROPSHEETPAGE psp;
96
97 if (ppsh->nPages < MAX_DESK_PAGES)
98 {
99 ZeroMemory(&psp, sizeof(psp));
100 psp.dwSize = sizeof(psp);
101 psp.dwFlags = PSP_DEFAULT;
102 if (pfnCallback != NULL)
103 psp.dwFlags |= PSP_USECALLBACK;
104 psp.hInstance = hApplet;
105 psp.pszTemplate = MAKEINTRESOURCE(idDlg);
106 psp.pfnDlgProc = DlgProc;
107 psp.pfnCallback = pfnCallback;
108
109 hPage = CreatePropertySheetPage(&psp);
110 if (hPage != NULL)
111 {
112 return DisplayAppletPropSheetAddPage(hPage, (LPARAM)ppsh);
113 }
114 }
115
116 return FALSE;
117}
#define CreatePropertySheetPage
Definition: prsht.h:399
#define PSP_DEFAULT
Definition: prsht.h:22
#define PSP_USECALLBACK
Definition: prsht.h:30
#define PROPSHEETPAGE
Definition: prsht.h:389

Referenced by DisplayApplet().

◆ InstallScreenSaverA()

void WINAPI InstallScreenSaverA ( IN HWND  hWindow,
IN HANDLE  hInstance,
IN LPCSTR  pszFile,
IN UINT  nCmdShow 
)

Definition at line 407 of file desk.c.

412{
413 LPWSTR lpwString;
414 int nLength;
415
416 if (!pszFile)
417 {
418 DPRINT1("InstallScreenSaver() null file\n");
420 return;
421 }
422
423 /* Convert the string to unicode */
424 lpwString = NULL;
425 nLength = MultiByteToWideChar(CP_ACP, 0, pszFile, -1, NULL, 0);
426 if (nLength != 0)
427 {
428 lpwString = LocalAlloc(LMEM_FIXED, nLength * sizeof(WCHAR));
429 if (lpwString)
430 {
431 if (!MultiByteToWideChar(CP_ACP, 0, pszFile, -1, lpwString, nLength))
432 {
433 LocalFree(lpwString);
434 lpwString = NULL;
435 }
436 }
437 }
438 if (!lpwString)
439 {
440 DPRINT1("InstallScreenSaver() not enough memory to convert string to unicode\n");
441 return;
442 }
443
444 /* Call the unicode function */
445 InstallScreenSaverW(hWindow, hInstance, lpwString, nCmdShow);
446
447 LocalFree(lpwString);
448}
#define DPRINT1
Definition: precomp.h:8
HINSTANCE hInstance
Definition: charmap.c:19
void WINAPI InstallScreenSaverW(IN HWND hWindow, IN HANDLE hInstance, IN LPCWSTR pszFile, IN UINT nCmdShow)
Definition: desk.c:313
#define ERROR_INVALID_PARAMETER
Definition: compat.h:101
#define CP_ACP
Definition: compat.h:109
#define SetLastError(x)
Definition: compat.h:752
#define MultiByteToWideChar
Definition: compat.h:110
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
Definition: heapmem.c:1390
#define LMEM_FIXED
Definition: winbase.h:401
WINBASEAPI _In_ DWORD nLength
Definition: wincon.h:682
__wchar_t WCHAR
Definition: xmlstorage.h:180

◆ InstallScreenSaverW()

void WINAPI InstallScreenSaverW ( IN HWND  hWindow,
IN HANDLE  hInstance,
IN LPCWSTR  pszFile,
IN UINT  nCmdShow 
)

Definition at line 313 of file desk.c.

318{
319 LRESULT rc;
320 HKEY regKey;
321 INT Timeout;
322#ifdef CHECK_SCR_FULL_PATH
324 WIN32_FIND_DATAW fdFile;
325#endif
326 DWORD dwLen;
327 WCHAR szFullPath[MAX_PATH];
328
329 if (!pszFile)
330 {
331 DPRINT1("InstallScreenSaver() null file\n");
333 return;
334 }
335 DPRINT("InstallScreenSaver() Installing screensaver %ls\n", pszFile);
336
337#ifdef CHECK_SCR_FULL_PATH
338 /* Retrieve the actual path to the file and verify whether it exists */
339 dwLen = GetFullPathNameW(pszFile, _countof(szFullPath), szFullPath, NULL);
340 if (dwLen == 0 || dwLen > _countof(szFullPath))
341 {
342 DPRINT1("InstallScreenSaver() File %ls not accessible\n", pszFile);
343 return;
344 }
345 hFile = FindFirstFile(szFullPath, &fdFile);
347 {
348 DPRINT1("InstallScreenSaver() File %ls not found\n", pszFile);
349 return;
350 }
352 /* Use the full file path from now on */
353 pszFile = szFullPath;
354#endif
355
357 L"Control Panel\\Desktop",
358 0,
360 &regKey);
361 if (rc == ERROR_SUCCESS)
362 {
363 /* Set the screensaver */
364 SIZE_T Length = (wcslen(pszFile) + 1) * sizeof(WCHAR);
365 rc = RegSetValueExW(regKey,
366 L"SCRNSAVE.EXE",
367 0,
368 REG_SZ,
369 (PBYTE)pszFile,
370 (DWORD)Length);
371 RegCloseKey(regKey);
372 }
373 if (rc != ERROR_SUCCESS)
374 {
375 DPRINT1("InstallScreenSaver() Could not change the current screensaver\n");
376 return;
377 }
378
380
381 /* If no screensaver timeout is present, default to 10 minutes (600 seconds) */
382 Timeout = 0;
385
386 /* Retrieve the name of this current instance of desk.cpl */
387 dwLen = GetModuleFileNameW(hApplet, szFullPath, _countof(szFullPath));
388 if ((dwLen == 0) || (GetLastError() == ERROR_INSUFFICIENT_BUFFER))
389 {
390 /* We failed, copy the default value */
391 StringCchCopyW(szFullPath, _countof(szFullPath), L"desk.cpl");
392 }
393
394 /* Build the desk.cpl command-line to start the ScreenSaver page.
395 * Equivalent to: "desk.cpl,ScreenSaver,@ScreenSaver" */
396 rc = StringCchCatW(szFullPath, _countof(szFullPath), L",,1");
397 if (FAILED(rc))
398 return;
399
400 /* Open the ScreenSaver page in this desk.cpl instance */
401 DPRINT("InstallScreenSaver() Starting '%ls'\n", szFullPath);
402 Control_RunDLLW(hWindow, hInstance, szFullPath, nCmdShow);
403}
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_INSUFFICIENT_BUFFER
Definition: dderror.h:10
#define ERROR_SUCCESS
Definition: deptool.c:10
VOID WINAPI Control_RunDLLW(HWND hWnd, HINSTANCE hInst, LPCWSTR cmd, DWORD nCmdShow)
Definition: control.c:1177
LONG WINAPI RegOpenKeyExW(HKEY hKey, LPCWSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult)
Definition: reg.c:3333
LONG WINAPI RegSetValueExW(_In_ HKEY hKey, _In_ LPCWSTR lpValueName, _In_ DWORD Reserved, _In_ DWORD dwType, _In_ CONST BYTE *lpData, _In_ DWORD cbData)
Definition: reg.c:4882
#define INVALID_HANDLE_VALUE
Definition: compat.h:731
#define MAX_PATH
Definition: compat.h:34
BOOL WINAPI FindClose(HANDLE hFindFile)
Definition: find.c:502
DWORD WINAPI GetModuleFileNameW(HINSTANCE hModule, LPWSTR lpFilename, DWORD nSize)
Definition: loader.c:600
DWORD WINAPI GetFullPathNameW(IN LPCWSTR lpFileName, IN DWORD nBufferLength, OUT LPWSTR lpBuffer, OUT LPWSTR *lpFilePart)
Definition: path.c:1106
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define FAILED(hr)
Definition: intsafe.h:51
#define REG_SZ
Definition: layer.c:22
_In_ HANDLE hFile
Definition: mswsock.h:90
#define KEY_SET_VALUE
Definition: nt_native.h:1017
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
BYTE * PBYTE
Definition: pedump.c:66
static ULONG Timeout
Definition: ping.c:61
#define DPRINT
Definition: sndvol32.h:73
STRSAFEAPI StringCchCatW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:325
STRSAFEAPI StringCchCopyW(STRSAFE_LPWSTR pszDest, size_t cchDest, STRSAFE_LPCWSTR pszSrc)
Definition: strsafe.h:149
ULONG_PTR SIZE_T
Definition: typedefs.h:80
DWORD WINAPI GetLastError(void)
Definition: except.c:1042
#define FindFirstFile
Definition: winbase.h:3823
LONG_PTR LRESULT
Definition: windef.h:209
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define SPI_SETSCREENSAVEACTIVE
Definition: winuser.h:1377
#define SPIF_UPDATEINIFILE
Definition: winuser.h:1590
BOOL WINAPI SystemParametersInfoW(_In_ UINT uiAction, _In_ UINT uiParam, _Inout_opt_ PVOID pvParam, _In_ UINT fWinIni)
#define SPI_SETSCREENSAVETIMEOUT
Definition: winuser.h:1375
#define SPI_GETSCREENSAVETIMEOUT
Definition: winuser.h:1374

Referenced by InstallScreenSaverA().

◆ LoadPopupMenu()

HMENU LoadPopupMenu ( IN HINSTANCE  hInstance,
IN LPCTSTR  lpMenuName 
)

Definition at line 52 of file desk.c.

54{
55 HMENU hMenu, hSubMenu = NULL;
56
57 hMenu = LoadMenu(hInstance,
58 lpMenuName);
59
60 if (hMenu != NULL)
61 {
62 hSubMenu = GetSubMenu(hMenu,
63 0);
64 if (hSubMenu != NULL &&
65 !RemoveMenu(hMenu,
66 0,
68 {
69 hSubMenu = NULL;
70 }
71
72 DestroyMenu(hMenu);
73 }
74
75 return hSubMenu;
76}
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
Definition: ordinal.c:63
HMENU WINAPI GetSubMenu(_In_ HMENU, _In_ int)
#define MF_BYPOSITION
Definition: winuser.h:203
BOOL WINAPI RemoveMenu(_In_ HMENU, _In_ UINT, _In_ UINT)
#define LoadMenu
Definition: winuser.h:5902
BOOL WINAPI DestroyMenu(_In_ HMENU)

◆ PropSheetProc()

static int CALLBACK PropSheetProc ( HWND  hwndDlg,
UINT  uMsg,
LPARAM  lParam 
)
static

Definition at line 135 of file desk.c.

136{
137 // NOTE: This callback is needed to set large icon correctly.
138 HICON hIcon;
139 switch (uMsg)
140 {
141 case PSCB_INITIALIZED:
142 {
144 SendMessageW(hwndDlg, WM_SETICON, ICON_BIG, (LPARAM)hIcon);
145 break;
146 }
147 }
148 return 0;
149}
static HICON
Definition: imagelist.c:80
HICON hIcon
Definition: msconfig.c:44
#define PSCB_INITIALIZED
Definition: prsht.h:75
#define ICON_BIG
Definition: tnclass.cpp:51
HICON WINAPI LoadIconW(_In_opt_ HINSTANCE hInstance, _In_ LPCWSTR lpIconName)
Definition: cursoricon.c:2412
LRESULT WINAPI SendMessageW(_In_ HWND, _In_ UINT, _In_ WPARAM, _In_ LPARAM)

Referenced by DisplayApplet().

◆ ScreenSaverPageProc()

INT_PTR CALLBACK ScreenSaverPageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 779 of file screensaver.c.

783{
784 PDATA pData;
785
787
788 switch (uMsg)
789 {
790 case WM_INITDIALOG:
791 {
792 OnInitDialog(hwndDlg, pData);
793 break;
794 }
795
796 case WM_DESTROY:
797 {
798 if (pData->ScreenSaverPreviewParent)
799 {
802 (LONG_PTR)pData->OldPreviewProc);
803 DestroyWindow(pData->ScreenSaverPreviewParent);
804 pData->ScreenSaverPreviewParent = NULL;
805 }
807 if (pData->PrevWindowPi.hProcess)
808 {
809 TerminateProcess(pData->PrevWindowPi.hProcess, 0);
810 CloseHandle(pData->PrevWindowPi.hProcess);
811 CloseHandle(pData->PrevWindowPi.hThread);
812 }
814 break;
815 }
816
817 case WM_ENDSESSION:
818 {
820 break;
821 }
822
823 case WM_DRAWITEM:
824 {
825 LPDRAWITEMSTRUCT lpDrawItem;
826 lpDrawItem = (LPDRAWITEMSTRUCT)lParam;
827
828 if (lpDrawItem->CtlID == IDC_SCREENS_PREVIEW)
829 ShowScreenSaverPreview(lpDrawItem, pData);
830 break;
831 }
832
833 case WM_COMMAND:
834 {
835 DWORD controlId = LOWORD(wParam);
837
838 switch (controlId)
839 {
840 case IDC_SCREENS_LIST:
841 {
843 {
844 SelectionChanged(hwndDlg, pData);
846 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
847 }
848 break;
849 }
850
852 {
853 if (command == EN_CHANGE)
854 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
855 break;
856 }
857
858 case IDC_SCREENS_POWER_BUTTON: // Start Powercfg.Cpl
859 {
860 if (command == BN_CLICKED)
861 WinExec("rundll32 shell32.dll,Control_RunDLL powercfg.cpl",SW_SHOWNORMAL);
862 break;
863 }
864
865 case IDC_SCREENS_TESTSC: // Screensaver Preview
866 {
867 if (command == BN_CLICKED)
868 {
869 ScreenSaverPreview(hwndDlg, pData);
871 }
872 break;
873 }
874
875 case IDC_SCREENS_SETTINGS: // Screensaver Settings
876 {
877 if (command == BN_CLICKED)
878 ScreenSaverConfig(hwndDlg, pData);
879 break;
880 }
881
882 case IDC_SCREENS_USEPASSCHK: // Screensaver Is Secure
883 {
884 if (command == BN_CLICKED)
885 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
886 break;
887 }
888 }
889 break;
890 }
891
892 case WM_NOTIFY:
893 {
894 LPNMHDR lpnm = (LPNMHDR)lParam;
895
896 switch(lpnm->code)
897 {
898 case PSN_APPLY:
899 {
900 SetScreenSaver(hwndDlg, pData);
901 return TRUE;
902 }
903
904 case PSN_SETACTIVE:
905 {
906 /* Enable screensaver preview support */
908 break;
909 }
910
911 case PSN_KILLACTIVE:
912 {
913 /* Kill running preview screensaver */
914 if (pData->PrevWindowPi.hProcess)
915 {
916 TerminateProcess(pData->PrevWindowPi.hProcess, 0);
917 CloseHandle(pData->PrevWindowPi.hProcess);
918 CloseHandle(pData->PrevWindowPi.hThread);
919 pData->PrevWindowPi.hThread = pData->PrevWindowPi.hProcess = NULL;
920 }
921 break;
922 }
923 }
924 }
925 break;
926 }
927
928 return FALSE;
929}
#define IDC_SCREENS_PREVIEW
Definition: resource.h:39
#define IDC_SCREENS_USEPASSCHK
Definition: resource.h:44
#define IDC_SCREENS_TIMEDELAY
Definition: resource.h:45
#define IDC_SCREENS_POWER_BUTTON
Definition: resource.h:41
#define IDC_SCREENS_LIST
Definition: resource.h:40
#define IDC_SCREENS_TESTSC
Definition: resource.h:43
#define IDC_SCREENS_SETTINGS
Definition: resource.h:42
static VOID ShowScreenSaverPreview(IN LPDRAWITEMSTRUCT draw, IN PDATA pData)
Definition: screensaver.c:137
static VOID SelectionChanged(HWND hwndDlg, PDATA pData)
Definition: screensaver.c:84
static VOID ScreenSaverPreview(HWND hwndDlg, PDATA pData)
Definition: screensaver.c:319
static VOID SetScreenSaver(HWND hwndDlg, PDATA pData)
Definition: screensaver.c:586
static VOID SetScreenSaverPreviewBox(HWND hwndDlg, PDATA pData)
Definition: screensaver.c:178
struct _DATA * PDATA
static BOOL OnInitDialog(HWND hwndDlg, PDATA pData)
Definition: screensaver.c:653
static VOID ScreenSaverConfig(HWND hwndDlg, PDATA pData)
Definition: screensaver.c:267
static const TCHAR szPreviewWndClass[]
Definition: screensaver.c:15
#define CloseHandle
Definition: compat.h:739
BOOL WINAPI TerminateProcess(IN HANDLE hProcess, IN UINT uExitCode)
Definition: proc.c:1532
UINT WINAPI DECLSPEC_HOTPATCH WinExec(LPCSTR lpCmdLine, UINT uCmdShow)
Definition: proc.c:4779
#define GWLP_WNDPROC
Definition: treelist.c:66
#define SW_SHOWNORMAL
Definition: winuser.h:781
#define UnregisterClass
Definition: winuser.h:5946
#define WM_ENDSESSION
Definition: winuser.h:1646
BOOL WINAPI DestroyWindow(_In_ HWND)
#define EN_CHANGE
Definition: winuser.h:2041

◆ SettingsPageCallbackProc()

UINT CALLBACK SettingsPageCallbackProc ( HWND  hwnd,
UINT  uMsg,
LPPROPSHEETPAGE  ppsp 
)

Definition at line 687 of file settings.c.

688{
689 UINT Ret = 0;
690
691 switch (uMsg)
692 {
693 case PSPCB_CREATE:
695 break;
696
697 case PSPCB_RELEASE:
699 break;
700 }
701
702 return Ret;
703}
VOID UnregisterMonitorSelectionControl(IN HINSTANCE hInstance)
Definition: monslctl.c:1655
BOOL RegisterMonitorSelectionControl(IN HINSTANCE hInstance)
Definition: monslctl.c:1638
#define PSPCB_CREATE
Definition: prsht.h:38
#define PSPCB_RELEASE
Definition: prsht.h:37

◆ SettingsPageProc()

INT_PTR CALLBACK SettingsPageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 613 of file settings_page.c.

614{
615 switch (uMsg)
616 {
617 case WM_INITDIALOG:
618 OnInitSettingsPage(hwndDlg);
619 return TRUE;
620
621 case WM_DESTROY:
622 OnDestroySettingsPage(hwndDlg);
623 break;
624
625 case WM_COMMAND:
627 break;
628
629 case WM_NOTIFY:
630 return OnNotifySettingsPage(hwndDlg, lParam);
631 }
632
633 return FALSE;
634}
static INT_PTR OnNotifySettingsPage(HWND hwndDlg, LPARAM lParam)
static VOID OnInitSettingsPage(HWND hwndDlg)
static VOID OnDestroySettingsPage(HWND hwndDlg)
VOID OnCommandSettingsPage(HWND hwndDlg, WPARAM wParam)

Referenced by SystemApplet().

◆ ThemesPageProc()

INT_PTR CALLBACK ThemesPageProc ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 1065 of file theme.c.

1066{
1067 LPNMHDR lpnm;
1068
1069 switch (uMsg)
1070 {
1071 case WM_INITDIALOG:
1072 break;
1073
1074 case WM_COMMAND:
1075 break;
1076
1077 case WM_NOTIFY:
1078 lpnm = (LPNMHDR)lParam;
1079 switch (lpnm->code)
1080 {
1081 case PSN_APPLY:
1083 return TRUE;
1084 }
1085 break;
1086
1087 case WM_DESTROY:
1088 break;
1089 }
1090
1091 return FALSE;
1092}

Variable Documentation

◆ Applets

APPLET Applets[]
Initial value:
=
{
{
}
}
static LONG APIENTRY DisplayApplet(HWND hwnd, UINT uMsg, LPARAM wParam, LPARAM lParam)
Definition: desk.c:153
#define IDS_CPLDESCRIPTION
Definition: resource.h:9

Definition at line 41 of file desk.c.

Referenced by CPlApplet().

◆ Callback

Definition at line 123 of file desk.c.

◆ DlgProc

◆ hApplet

HINSTANCE hApplet = NULL

Definition at line 37 of file desk.c.

Referenced by DisplayApplet(), DllMain(), InitPropSheetPage(), InstallScreenSaverW(), and PropSheetProc().

◆ hCPLWindow

HWND hCPLWindow = NULL

Definition at line 38 of file desk.c.

Referenced by DisplayApplet(), and LoadSchemeFromTheme().

◆ idDlg

◆ Name

Definition at line 124 of file desk.c.

Referenced by _Function_class_(), _IRQL_requires_max_(), _LocalEnumPrintersCheckName(), _RpcEnumPrinters(), _test_border_styles(), _test_key_name(), AccpLookupSidByName(), AcpiDebugTrace(), AcpiDsMethodError(), AcpiEvMatchGpeMethod(), AcpiExInterpreterTraceEnabled(), AcpiGetObjectInfo(), AcpiGetVendorResource(), AcpiNsBuildNormalizedPath(), AcpiNsConvertToReference(), AcpiNsCreateNode(), AcpiPsGetNextField(), AcpiPsInitOp(), AcpiRegOpenKey(), AcpiRegQueryValue(), AcpiRsDumpDescriptor(), AcpiTbConvertFadt(), AcpiTbSetupFadtRegisters(), AcpiUtCheckAndRepairAscii(), AcpiUtGetSimpleObjectSize(), AcpiUtMatchPredefinedMethod(), AcpiUtRepairName(), AcpiUtValidNameseg(), AcpiWalkResources(), AddBitmap(), AddCheckItem(), AddCodepageToRegistry(), AddDeviceToList(), AddEntryToList(), AddFileName(), AddIconFromRegistry(), AddIndexAllocation(), AddIndexRoot(), CRegTreeOptions::AddItemsFromRegistry(), AddProvider(), AddToCache(), AddUninstallOperationsFromDB(), AddVolumeToList(), allow_degraded_mount(), ApiSetResolveToHost(), AppendUserEnvironmentVariable(), WDFDEVICE_INIT::AssignName(), ata_open_dev(), ata_open_file(), AtapiRegCheckDevLunValue(), AtapiRegCheckDevValue(), AtapiRegCheckParameterValue(), AtapiRegGetStringParameterValue(), AVrfpLdrGetProcedureAddress(), BaseGetEnvNameType_U(), BasepLoadLibraryAsDatafile(), BrFolder_OnNotify(), BrFolder_UpdateItemEx(), BuildTrusteeWithObjectsAndNameA(), BuildTrusteeWithObjectsAndNameW(), capCreateCaptureWindowA(), CdCreateInternalStream(), CdFindNameLink(), CdInsertPrefix(), CdShortNameDirentOffset(), CdUpcaseName(), change_section_attribs(), ChanMgrGetChannelByName(), ChannelGetName(), ChannelSetName(), CheckForCurrentHostname(), CheckForDeviceDesc(), CheckNameLegalDOS8Dot3A(), CheckNameLegalDOS8Dot3W(), CheckVolume(), ClassDeviceControl(), clean_main(), CmBattCallAcpiPackage(), CmCreateRootNode(), cmd_endlocal(), cmd_mklink(), CmiAddValueKey(), CmiCreateSubKey(), CmiInitializeHive(), CmpAddDriverToList(), CmpAddSubKey(), CmpAddToLeaf(), CmpComputeHashKey(), CmpConvertLangId(), CmpCreateLinkNode(), CmpCreateObjectTypes(), CmpCreateRootNode(), CmpDoCreate(), CmpDoCreateChild(), CmpFindControlSet(), CmpFindDrivers(), CmpFindNameInList(), CmpFindValueByName(), CmpFindValueByNameFromCache(), CmpGetNameControlBlock(), CmpInitializeHiveList(), CmpIsLoadType(), CmpIsSafe(), CmpNameSize(), CmpQueryKeyData(), CmpQueryKeyValueData(), CmpQueryNameInformation(), CmpSelectLeaf(), CmpSetValueKeyNew(), CmpSortDriverList(), CmpValidateKey(), CmpValidateValueListByCount(), CODE_SEG(), CompleteFilename(), ConsumeChildKeyName(), ConvertStabs(), CopyField(), CopyFieldTruncate(), CAppDB::CreateInstalledAppByRegistryKey(), CreateOutputFile(), CreatePartitionList(), CreateRecordForIpAddress(), CreateRedirectedFile(), CreateRegAppPath(), CScopedMutex::CScopedMutex(), D3DXGetShaderSamplers(), DbgCommandString(), DbgHelpAddLineNumber(), DbgkInitialize(), DbgLoadImageSymbols(), DbgUnLoadImageSymbols(), Defragment::Defragment(), DeleteRegAppPath(), DeviceIoctlPassive(), DismountVolume(), DisplayApplet(), Dns_CreateStringCopy_W(), Dns_Ip4AddressToReverseName_W(), Dns_Ip4ReverseNameToAddress_W(), Dns_Ip4StringToAddress_A(), Dns_Ip4StringToAddress_W(), Dns_Ip6StringToAddress_A(), Dns_Ip6StringToAddress_W(), Dns_ReverseNameToDnsAddr_W(), DnsIntCacheGetEntryByName(), DnsIntCacheRemoveEntryByName(), DnsQuery_A(), DnsQuery_CodePage(), DnsQuery_UTF8(), DnsQuery_W(), do_enumeratekey(), CDFParser::DoCabinetName(), DoExport(), Dump(), DumpBase(), DumpDisk(), DumpInfo(), DumpPartition(), DumpVirtIOFeatures(), EmsIntHandler(), EnumDeviceKeys(), enumerate_mapped_resources(), EnumerateBiosDiskEntries(), EnumerateDevices(), EnumerateKeyTest(), EnumerateSoundDevices(), EnumerateSubkey(), EnumerateValueTest(), EnumNamesCallback(), EnumNamesW(), EnumPrintersA(), EnumPrintersW(), EtfspCachedSearchForDirent(), EtfspSearchForDirent(), ExpInitializeCallbacks(), ExpInitializeEventImplementation(), ExpInitializeEventPairImplementation(), ExpInitializeMutantImplementation(), ExpInitializeProfileImplementation(), ExpInitializeSemaphoreImplementation(), ExpInitializeTimerImplementation(), ExpWin32kInit(), Ext2IsEaNameValid(), Ext2ParseRegistryVolumeParams(), CZipExtract::Extract(), CZipExtract::ExtractSingle(), FatFindFcb(), FatInsertName(), FatIsEaNameValid(), FatIsNameInExpression(), FatIsNameLongUnicodeValid(), FatLocateEaByName(), filesys_BuildPath(), FillServerAddressCombo(), FilterMapper_EnumMatchingFilters(), FilterMapper_UnregisterPin(), CFontCache::Find(), find_rossym_section(), find_security_package(), FindAttribute(), FindDeviceDescForAdapter(), FindExpectedFile(), FindFlag(), FindImportDescriptor(), finish_removing_device(), FltpSetupCommunicationObjects(), FormatEx2(), fs_ignored(), FsRtlDissectDbcs(), FsRtlDissectName(), FsRtlDoesDbcsContainWildCards(), FsRtlDoesNameContainWildCards(), FsRtlFindInTunnelCache(), FsRtlIsDbcsInExpression(), FsRtlIsNameInExpression(), FsRtlIsNameInExpressionPrivate(), FxOverrideDefaultVerifierSettings(), get_constants_desc(), get_mountdev_name(), get_resource_section(), get_root_key(), GetCommonString(), GetEventSourceByName(), GetFieldLength(), GetFileInformationByHandle(), GetFileNameAttributeLength(), GetFileNameFromRecord(), GetGenerateString(), gethostname(), GetIpHostName(), GetKeyboardLayoutNameW(), GetLsaDefaultPassword(), GetNameFromPath(), GetObjectType(), GetParsingName(), GetPortName(), GetProtoOpenNetworkDatabase(), GetRegDWORD(), GetRegInt(), GetRegString(), GetRootKeyByName(), GetSectionNames(), CConfigParser::GetSectionString(), GetSetState(), GetStabInfo(), getVKName(), getVKNum(), getxyDataEnt(), HalGetEnvironmentVariable(), HalSetEnvironmentVariable(), HandleDesktopIniOp(), anonymous_namespace{settingsdlg.cpp}::HandleGeneralListItems(), HandleLoadUnloadIoctl(), HashAddString(), IEnumRegFiltersImpl_Construct(), IEnumRegFiltersImpl_Next(), ImageSymToVa(), implicit_handle(), InfpAddSection(), InfpCacheAddSection(), InfpCacheFindSection(), InfpFindSection(), IniAddKey(), IniAddSection(), IniCacheAddKeyAorW(), IniCacheAddSectionAorW(), IniCacheFindKey(), IniCacheFindSection(), IniCacheLoad(), IniCacheSave(), IniGetSection(), IniInsertKey(), InitDialog(), InitHandlesTable(), InitializeFmIfsOnce(), InitializeNamedEntry(), InstallBootCodeToDisk(), InstallBootCodeToFile(), InstallBtrfsBootCode(), InstallFat32BootCode(), InstallFatBootCode(), InstallMbrBootCode(), InstallNtfsBootCode(), InstallSubdevice(), InternetExplorer_get_Name(), IntGetFontLocalizedName(), IntMsgCreateStructW(), IntVideoPortGetProcAddress(), IntWinStaObjectDelete(), IopCaptureUnicodeString(), IopCreateObjectTypes(), IopOpenRegistryKeyEx(), IoReportHalResourceUsage(), is_btrfs_volume(), IsDotOrDotDot(), IsIllegalFsFileName(), IsoSearchDirectoryBufferForFile(), IsShortName_U(), IsValidInstallDirectory(), KdInitSystem(), KeI386VdmInitialize(), KspBusQueryReferenceString(), KspCreateObjectType(), KspQueryId(), KspReadMediaCategory(), KspStartBusDevice(), LANRegisterProtocol(), LdrGetProcedureAddress(), LdrpGetProcedureAddress(), TMapLoader::LoadGlobal(), LocalEnumPrinters(), LogfListItemByName(), LookupAddressForName(), LookupPrivilegeDisplayNameW(), LookupPrivilegeValueA(), LpcInitSystem(), LsaLookupPrivilegeDisplayName(), LsaLookupPrivilegeName(), LsaLookupPrivilegeValue(), LsapAddDomainToDomainsList(), LsapLookupAccountDomainSids(), LsapLookupAccountRightName(), LsapLookupAccountRightValue(), LsapLookupBuiltinDomainSids(), LsapLookupWellKnownSids(), LsapRegCreateKey(), LsapRegDeleteValue(), LsapRegEnumerateValue(), LsapRegOpenKey(), LsapRegQueryValue(), LsapRegSetValue(), LsapRmInitializeServer(), LsarLookupPrivilegeDisplayName(), LsarLookupPrivilegeName(), LsarLookupPrivilegeValue(), LsarpEnumeratePrivileges(), LsarpLookupPrivilegeDisplayName(), LsarpLookupPrivilegeName(), LsarpLookupPrivilegeValue(), main(), MatchVerb(), MiCreateMemoryEvent(), MiSnapThunk(), MmCreatePhysicalMemorySection(), MmInitSectionImplementation(), MMixerAddMixerControl(), MMixerGetDeviceName(), mountmgr_process_drive(), NetGroupAdd(), CEnumFonts::Next(), nfs41_MountConfig_ParseDword(), nfs41_MountConfig_ParseOptions(), NpFindPrefix(), NpFindRelativePrefix(), NpQueryNameInfo(), NpWaitForNamedPipe(), NpWaitPipe(), NtfsDumpAttribute(), NtfsDumpIndexRootAttribute(), NtfsFindAttribute(), NtfsFindAttributeHelper(), NtfsMakeFCBFromDirEntry(), NtfsOpenFileById(), NtfsReadFCBAttribute(), NtfsReadFile(), NtfsWriteFile(), NtQueryDirectoryObject(), NtQueryInformationAtom(), ObInitSystem(), ObjectCloseAuditAlarmA(), ObjectCloseAuditAlarmW(), ObjectDeleteAuditAlarmA(), ObjectDeleteAuditAlarmW(), ObpFreeObjectNameBuffer(), ObpLookupEntryDirectory(), ObtClose(), ObtCreateObjects(), ObtCreateObjectTypes(), ODBC32_SQLGetDescRec(), ODBC32_SQLGetDescRecW(), ok_displayname_(), CLayerUIPropPage::OnApply(), CDFParser::OnCabinetName(), OnTreeExpanding(), DriveVolume::Open(), OpenControlPanelItem(), OpenIniBootLoaderStore(), OpenNetworkDatabase(), path_CreateClassPart(), PciScanBus(), PcRegisterSubdevice(), pointer_default(), pOpenDevice(), pOpenDeviceEx(), PrintFileDacl(), PrintNameTable(), PrintPrettyName(), probe_volume(), PspInitPhase0(), query_filesystems(), Query_Main(), QueryDeviceInformation(), QueryDeviceName(), QueryHKCRValue(), read_mapped_resources(), ReadIniValue(), CCleanupHandler::ReadProperty(), RefreshTreeItem(), RegEnumValueW(), registry_callback(), RegSetOrDelete(), RegSetString(), RegTGetDwordValue(), RegTGetStringValue(), RegValueExists(), remove_volume_child(), CAppDB::RemoveInstalledAppFromRegistry(), RequestHandleMountQuerySuggestedLinkName(), ResFindDataEntryFromImage(), ResFindDirectoryEntry(), RosSymCreateFromFile(), RosSymCreateFromMem(), RosSymGetAddressInformation(), RpcBindingSetAuthInfoExA(), RpcBindingSetAuthInfoExW(), RtlAtomTestThread(), RtlDeleteRegistryValue(), RtlGenerate8dot3Name(), RtlpCallQueryRegistryRoutine(), RtlpGetCheckSum(), RtlpHashAtomName(), RtlQueryEnvironmentVariable_U(), RtlSetEnvironmentVariable(), RtlWriteRegistryValue(), RxConjureOriginalName(), RxCreateNetFcb(), RxCreateNetRoot(), RxCreateSrvCall(), RxTableComputeHashValue(), RxTableComputePathHashValue(), RxTableLookupName(), RxTableLookupName_ExactLengthMatch(), SaBlob_CreateFromIp4(), SaBlob_Query(), SamLookupDomainInSamServer(), SampRegCreateKey(), SampRegDeleteValue(), SampRegEnumerateValue(), SampRegOpenKey(), SampRegQueryValue(), SampRegSetValue(), SamrCreateGroupInDomain(), SamrCreateUser2InDomain(), SamrCreateUserInDomain(), SamrLookupDomainInSamServer(), SaveBootSector(), SaveCheckState(), SdbpMatchExe(), SearchForAppWithDisplayName(), SendLinkCreated(), SendLinkDeleted(), SepInitializationPhase1(), SepInitializeTokenImplementation(), SeRmInitPhase1(), FxIoTargetRemoveOpenParams::Set(), SetGeoID(), SetHKCRValue(), SetUserEnvironmentVariable(), SHELL32_AssocGetFileDescription(), SHGetUnreadMailCountW(), SmLookupSubsystem(), SmpCreatePagingFile(), SmpSaveRegistryValue(), SRomParseHeader(), START_TEST(), StoreNameInSft(), SubclassWnd(), SymFromName(), SymGetSymFromName(), SymGetSymFromName64(), SymGetTypeFromName(), TdiOpenAddressFile(), TdiOpenDevice(), test1(), test2(), test3(), test6(), test9(), test_GetInterfaceName(), Test_KeyNameInformation(), test_NhGetInterfaceNameFromDeviceGuid(), test_NhGetInterfaceNameFromGuid(), test_NtAtom(), test_NtIntAtom(), test_NtQueryValueKey(), test_pack_IMAGE_ARCHIVE_MEMBER_HEADER(), test_pack_IMAGE_EXPORT_DIRECTORY(), test_pack_IMAGE_IMPORT_BY_NAME(), test_pack_IMAGE_SECTION_HEADER(), test_token_attr(), testAcquireSecurityContext(), TestAllInformation(), testEnumerateSecurityPackages(), TestEnumFontFamilies(), TestFltRegisterFilter(), TestReference(), TextIntRealizeFont(), thunk_PSecPkgInfoWToA(), TiGetProtocolNumber(), TryConnectPort(), TryCreatePort(), UDFBuildHashEntry(), UDFCanNameBeA8dot3(), UDFFindFile(), UDFFindFile__(), UDFGetCfgParameter(), UDFGetRegParameter(), UDFIsMatchAllMask(), UDFIsPathnameValid(), UDFRegCheckParameterValue(), UDFUpdateCompatOption(), update_add_resource(), USBAudioInitComponentId(), USBAudioRegCreateMediaCategoriesKey(), USBSTOR_GetFieldLength(), ValueExists(), vol_query_device_name(), WahCreateSocketHandle(), WahOpenHandleHelper(), WaitNamedPipeW(), WebBrowser_get_Name(), wmain(), WriteArpEntry(), WritePartitions(), WSAAsyncGetHostByName(), WSAAsyncGetProtoByName(), WSAAsyncGetServByName(), WSAttemptAutodialAddr(), WshShell3_RegDelete(), WSNoteSuccessfulHostentLookup(), WSPGetPeerName(), and WSPGetSockName().

◆ 

const struct { ... } PropPages[]
Initial value:
=
{
{ IDD_SCREENSAVER, ScreenSaverPageProc, NULL, L"Screen Saver" },
}
INT_PTR CALLBACK AppearancePageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: appearance.c:216
INT_PTR CALLBACK SettingsPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
INT_PTR CALLBACK ScreenSaverPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: screensaver.c:779
INT_PTR CALLBACK BackgroundPageProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: background.c:1184
UINT CALLBACK SettingsPageCallbackProc(HWND hwnd, UINT uMsg, LPPROPSHEETPAGE ppsp)
Definition: settings.c:687
#define IDD_SETTINGS
Definition: resource.h:13
#define IDD_SCREENSAVER
Definition: resource.h:11
#define IDD_APPEARANCE
Definition: resource.h:12

Referenced by DisplayApplet().