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?r... ============================================================================== --- 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); }