3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS Display Control Panel
5 * FILE: lib/cpl/desk/desk.c
6 * PURPOSE: ReactOS Display Control Panel
8 * PROGRAMMERS: Trevor McCort (lycan359@gmail.com)
13 #define NUM_APPLETS (1)
15 LONG APIENTRY
DisplayApplet(HWND hwnd
, UINT uMsg
, LONG wParam
, LONG lParam
);
17 extern INT_PTR CALLBACK
BackgroundPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
18 extern INT_PTR CALLBACK
ScreenSaverPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
19 extern INT_PTR CALLBACK
AppearancePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
20 extern INT_PTR CALLBACK
SettingsPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
22 HINSTANCE hApplet
= 0;
25 APPLET Applets
[NUM_APPLETS
] =
35 static VOID
InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
)
37 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
38 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
39 psp
->dwFlags
= PSP_DEFAULT
;
40 psp
->hInstance
= hApplet
;
41 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
42 psp
->pfnDlgProc
= DlgProc
;
46 LONG APIENTRY
DisplayApplet(HWND hwnd
, UINT uMsg
, LONG wParam
, LONG lParam
)
52 LoadString(hApplet
, IDS_CPLNAME
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
54 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
55 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
56 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_USECALLBACK
| PSH_PROPTITLE
;
57 psh
.hwndParent
= NULL
;
58 psh
.hInstance
= hApplet
;
59 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDC_DESK_ICON
));
60 psh
.pszCaption
= Caption
;
61 psh
.nPages
= sizeof(psp
) / sizeof(PROPSHEETPAGE
);
65 InitPropSheetPage(&psp
[0], IDD_BACKGROUND
, BackgroundPageProc
);
66 InitPropSheetPage(&psp
[1], IDD_SCREENSAVER
, ScreenSaverPageProc
);
67 InitPropSheetPage(&psp
[2], IDD_APPEARANCE
, AppearancePageProc
);
68 InitPropSheetPage(&psp
[3], IDD_SETTINGS
, SettingsPageProc
);
70 return (LONG
)(PropertySheet(&psh
) != -1);
74 /* Control Panel Callback */
75 LONG CALLBACK
CPlApplet(HWND hwndCPl
, UINT uMsg
, LPARAM lParam1
, LPARAM lParam2
)
93 CPLINFO
*CPlInfo
= (CPLINFO
*)lParam2
;
95 CPlInfo
->idIcon
= Applets
[i
].idIcon
;
96 CPlInfo
->idName
= Applets
[i
].idName
;
97 CPlInfo
->idInfo
= Applets
[i
].idDescription
;
102 Applets
[i
].AppletProc(hwndCPl
, uMsg
, lParam1
, lParam2
);
110 BOOL WINAPI
DllMain(HINSTANCE hinstDLL
, DWORD dwReason
, LPVOID lpvReserved
)
114 case DLL_PROCESS_ATTACH
:
115 case DLL_THREAD_ATTACH
: