From f1f13fff167cf522243bb85d7309d44e0533a1fa Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Fri, 19 Jan 2007 18:34:50 +0000 Subject: [PATCH] Enable shell extensions to add pages to the control panel. The "Remote" page in XP however disappears when being clicked on. Is someone interested in taking a look at it? svn path=/trunk/; revision=25536 --- reactos/dll/cpl/sysdm/sysdm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/reactos/dll/cpl/sysdm/sysdm.c b/reactos/dll/cpl/sysdm/sysdm.c index 6acf1dc6b8f..8a2785d4805 100644 --- a/reactos/dll/cpl/sysdm/sysdm.c +++ b/reactos/dll/cpl/sysdm/sysdm.c @@ -102,6 +102,7 @@ SystemApplet(VOID) HPROPSHEETPAGE hpsp[MAX_SYSTEM_PAGES]; PROPSHEETHEADER psh; HMODULE hNetIdDll; + HPSXA hpsxa; LONG Ret; static INITCOMMONCONTROLSEX icc = {sizeof(INITCOMMONCONTROLSEX), ICC_LINK_CLASS}; @@ -125,8 +126,20 @@ SystemApplet(VOID) InitPropSheetPage(&psh, IDD_PROPPAGEHARDWARE, (DLGPROC) HardwarePageProc); InitPropSheetPage(&psh, IDD_PROPPAGEADVANCED, (DLGPROC) AdvancedPageProc); + /* Load additional pages provided by shell extensions */ + hpsxa = SHCreatePropSheetExtArray(HKEY_LOCAL_MACHINE, REGSTR_PATH_CONTROLSFOLDER TEXT("\\System"), MAX_SYSTEM_PAGES - psh.nPages); + if (hpsxa != NULL) + { + SHAddFromPropSheetExtArray(hpsxa, PropSheetAddPage, (LPARAM)&psh); + } + Ret = (LONG)(PropertySheet(&psh) != -1); + if (hpsxa != NULL) + { + SHDestroyPropSheetExtArray(hpsxa); + } + if (hNetIdDll != NULL) FreeLibrary(hNetIdDll);