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)
14 #define NUM_APPLETS (1)
16 LONG APIENTRY
DisplayApplet(HWND hwnd
, UINT uMsg
, LONG wParam
, LONG lParam
);
18 extern INT_PTR CALLBACK
BackgroundPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
19 extern INT_PTR CALLBACK
ScreenSaverPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
20 extern INT_PTR CALLBACK
AppearancePageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
21 extern INT_PTR CALLBACK
SettingsPageProc(HWND hwndDlg
, UINT uMsg
, WPARAM wParam
, LPARAM lParam
);
23 HINSTANCE hApplet
= 0;
26 APPLET Applets
[NUM_APPLETS
] =
38 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
)
40 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
41 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
42 psp
->dwFlags
= PSP_DEFAULT
;
43 psp
->hInstance
= hApplet
;
44 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
45 psp
->pfnDlgProc
= DlgProc
;
51 DisplayApplet(HWND hwnd
, UINT uMsg
, LONG wParam
, LONG lParam
)
57 UNREFERENCED_PARAMETER(lParam
);
58 UNREFERENCED_PARAMETER(wParam
);
59 UNREFERENCED_PARAMETER(uMsg
);
60 UNREFERENCED_PARAMETER(hwnd
);
62 LoadString(hApplet
, IDS_CPLNAME
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
64 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
65 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
66 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_USECALLBACK
| PSH_PROPTITLE
;
67 psh
.hwndParent
= NULL
;
68 psh
.hInstance
= hApplet
;
69 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDC_DESK_ICON
));
70 psh
.pszCaption
= Caption
;
71 psh
.nPages
= sizeof(psp
) / sizeof(PROPSHEETPAGE
);
75 InitPropSheetPage(&psp
[0], IDD_BACKGROUND
, (DLGPROC
) BackgroundPageProc
);
76 InitPropSheetPage(&psp
[1], IDD_SCREENSAVER
, (DLGPROC
) ScreenSaverPageProc
);
77 InitPropSheetPage(&psp
[2], IDD_APPEARANCE
, (DLGPROC
) AppearancePageProc
);
78 InitPropSheetPage(&psp
[3], IDD_SETTINGS
, (DLGPROC
) SettingsPageProc
);
80 return (LONG
)(PropertySheet(&psh
) != -1);
84 /* Control Panel Callback */
86 CPlApplet(HWND hwndCPl
, UINT uMsg
, LPARAM lParam1
, LPARAM lParam2
)
100 CPLINFO
*CPlInfo
= (CPLINFO
*)lParam2
;
102 CPlInfo
->idIcon
= Applets
[i
].idIcon
;
103 CPlInfo
->idName
= Applets
[i
].idName
;
104 CPlInfo
->idInfo
= Applets
[i
].idDescription
;
109 Applets
[i
].AppletProc(hwndCPl
, uMsg
, lParam1
, lParam2
);
118 DllMain(HINSTANCE hInstDLL
, DWORD dwReason
, LPVOID lpvReserved
)
120 UNREFERENCED_PARAMETER(lpvReserved
);
124 case DLL_PROCESS_ATTACH
:
125 RegisterPreviewControl(hInstDLL
);
126 // case DLL_THREAD_ATTACH:
130 case DLL_PROCESS_DETACH
:
131 UnregisterPreviewControl(hInstDLL
);