Author: weiden
Date: Fri Jan 19 21:34:50 2007
New Revision: 25536
URL: 
http://svn.reactos.org/svn/reactos?rev=25536&view=rev
Log:
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?
Modified:
    trunk/reactos/dll/cpl/sysdm/sysdm.c
Modified: trunk/reactos/dll/cpl/sysdm/sysdm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/cpl/sysdm/sysdm.c?rev=…
==============================================================================
--- trunk/reactos/dll/cpl/sysdm/sysdm.c (original)
+++ trunk/reactos/dll/cpl/sysdm/sysdm.c Fri Jan 19 21:34:50 2007
@@ -102,6 +102,7 @@
   HPROPSHEETPAGE hpsp[MAX_SYSTEM_PAGES];
   PROPSHEETHEADER psh;
   HMODULE hNetIdDll;
+  HPSXA hpsxa;
   LONG Ret;
   static INITCOMMONCONTROLSEX icc = {sizeof(INITCOMMONCONTROLSEX), ICC_LINK_CLASS};
@@ -125,7 +126,19 @@
   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);