2 * PROJECT: ReactOS System Control Panel Applet
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: dll/cpl/sysdm/sysdm.c
5 * PURPOSE: dll entry file
6 * COPYRIGHT: Copyright Thomas Weidenmueller <w3seek@reactos.org>
12 LONG CALLBACK
SystemApplet(VOID
);
13 HINSTANCE hApplet
= 0;
16 APPLET Applets
[NUM_APPLETS
] =
18 {IDI_CPLSYSTEM
, IDS_CPLSYSTEMNAME
, IDS_CPLSYSTEMDESCRIPTION
, SystemApplet
}
21 #define MAX_SYSTEM_PAGES 8
24 PropSheetAddPage(HPROPSHEETPAGE hpage
, LPARAM lParam
)
26 PROPSHEETHEADER
*ppsh
= (PROPSHEETHEADER
*)lParam
;
27 if (ppsh
!= NULL
&& ppsh
->nPages
< MAX_SYSTEM_PAGES
)
29 ppsh
->phpage
[ppsh
->nPages
++] = hpage
;
37 InitPropSheetPage(PROPSHEETHEADER
*ppsh
, WORD idDlg
, DLGPROC DlgProc
)
42 if (ppsh
->nPages
< MAX_SYSTEM_PAGES
)
44 ZeroMemory(&psp
, sizeof(psp
));
45 psp
.dwSize
= sizeof(psp
);
46 psp
.dwFlags
= PSP_DEFAULT
;
47 psp
.hInstance
= hApplet
;
48 psp
.pszTemplate
= MAKEINTRESOURCE(idDlg
);
49 psp
.pfnDlgProc
= DlgProc
;
51 hPage
= CreatePropertySheetPage(&psp
);
54 return PropSheetAddPage(hPage
, (LPARAM
)ppsh
);
66 HPROPSHEETPAGE hpsp
[MAX_SYSTEM_PAGES
];
69 static INITCOMMONCONTROLSEX icc
= {sizeof(INITCOMMONCONTROLSEX
), ICC_LINK_CLASS
};
71 if (!InitCommonControlsEx(&icc
))
74 LoadString(hApplet
, IDS_CPLSYSTEMNAME
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
76 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
77 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
78 psh
.dwFlags
= PSH_PROPTITLE
;
79 psh
.hwndParent
= NULL
;
80 psh
.hInstance
= hApplet
;
81 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDI_CPLSYSTEM
));
82 psh
.pszCaption
= Caption
;
86 psh
.pfnCallback
= NULL
;
88 InitPropSheetPage(&psh
, IDD_PROPPAGEGENERAL
, (DLGPROC
) GeneralPageProc
);
89 InitPropSheetPage(&psh
, IDD_PROPPAGECOMPUTER
, (DLGPROC
) ComputerPageProc
);
90 InitPropSheetPage(&psh
, IDD_PROPPAGEHARDWARE
, (DLGPROC
) HardwarePageProc
);
91 InitPropSheetPage(&psh
, IDD_PROPPAGEADVANCED
, (DLGPROC
) AdvancedPageProc
);
93 return (LONG
)(PropertySheet(&psh
) != -1);
96 /* Control Panel Callback */
104 int i
= (int)lParam1
;
105 UNREFERENCED_PARAMETER(hwndCPl
);
119 CPLINFO
*CPlInfo
= (CPLINFO
*)lParam2
;
121 CPlInfo
->idIcon
= Applets
[i
].idIcon
;
122 CPlInfo
->idName
= Applets
[i
].idName
;
123 CPlInfo
->idInfo
= Applets
[i
].idDescription
;
128 Applets
[i
].AppletProc();
142 UNREFERENCED_PARAMETER(lpvReserved
);
145 case DLL_PROCESS_ATTACH
:
146 case DLL_THREAD_ATTACH
: