[ros-diffs] [janderwald] 40829: - Load property sheet handlers also from * key - Fixes displaying custom file property handlers like for TortoiseSVN

janderwald at svn.reactos.org janderwald at svn.reactos.org
Thu May 7 20:21:54 CEST 2009


Author: janderwald
Date: Thu May  7 22:21:53 2009
New Revision: 40829

URL: http://svn.reactos.org/svn/reactos?rev=40829&view=rev
Log:
- Load property sheet handlers also from * key
- Fixes displaying custom file property handlers like for TortoiseSVN

Modified:
    trunk/reactos/dll/win32/shell32/fprop.c

Modified: trunk/reactos/dll/win32/shell32/fprop.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/fprop.c?rev=40829&r1=40828&r2=40829&view=diff
==============================================================================
--- trunk/reactos/dll/win32/shell32/fprop.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/shell32/fprop.c [iso-8859-1] Thu May  7 22:21:53 2009
@@ -733,9 +733,12 @@
     TRACE("EnumPropSheetExt szName %s\n", debugstr_w(szName));
 
     hpsxa[0] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages, pDataObj);
-    hpsxa[1] = NULL;
-
     Pages = SHAddFromPropSheetExtArray(hpsxa[0], AddShellPropSheetExCallback, (LPARAM)pinfo);
+
+    hpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, L"*", NumPages-Pages, pDataObj);
+    Pages += SHAddFromPropSheetExtArray(hpsxa[1], AddShellPropSheetExCallback, (LPARAM)pinfo);
+
+    hpsxa[2] = NULL;
 
     if (pOffset)
     {
@@ -746,8 +749,8 @@
         {
             TRACE("EnumPropSheetExt szName %s, pOffset %s\n", debugstr_w(szName), debugstr_w(pOffset));
             szName[(sizeof(szName) / sizeof(WCHAR)) - 1] = L'\0';
-            hpsxa[1] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages - Pages, pDataObj);
-            Pages += SHAddFromPropSheetExtArray(hpsxa[1], AddShellPropSheetExCallback, (LPARAM)pinfo);
+            hpsxa[2] = SHCreatePropSheetExtArrayEx(HKEY_CLASSES_ROOT, szName, NumPages - Pages, pDataObj);
+            Pages += SHAddFromPropSheetExtArray(hpsxa[2], AddShellPropSheetExCallback, (LPARAM)pinfo);
         }
     }
 
@@ -774,7 +777,7 @@
     WCHAR wFileName[MAX_PATH];
     DWORD dwHandle = 0;
     WCHAR *pFileName;
-    HPSXA hpsxa[2];
+    HPSXA hpsxa[3];
     INT_PTR res;
     IDataObject *pDataObj = NULL;
     HRESULT hResult;
@@ -845,6 +848,7 @@
         {
             hpsxa[0] = NULL;
             hpsxa[1] = NULL;
+            hpsxa[2] = NULL;
         }
     }
 
@@ -865,6 +869,7 @@
     {
         SHDestroyPropSheetExtArray(hpsxa[0]);
         SHDestroyPropSheetExtArray(hpsxa[1]);
+        SHDestroyPropSheetExtArray(hpsxa[2]);
         IDataObject_Release(pDataObj);
     }
 



More information about the Ros-diffs mailing list