mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 12:23:31 +00:00
- Load property sheet handlers also from * key
- Fixes displaying custom file property handlers like for TortoiseSVN svn path=/trunk/; revision=40829
This commit is contained in:
@@ -733,10 +733,13 @@ EnumPropSheetExt(LPWSTR wFileName, PROPSHEETHEADERW *pinfo, int NumPages, HPSXA
|
||||
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)
|
||||
{
|
||||
/* try to load property sheet handlers from prog id key */
|
||||
@@ -746,8 +749,8 @@ EnumPropSheetExt(LPWSTR wFileName, PROPSHEETHEADERW *pinfo, int NumPages, HPSXA
|
||||
{
|
||||
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 @@ SH_ShowPropertiesDialog(WCHAR *lpf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *api
|
||||
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 @@ SH_ShowPropertiesDialog(WCHAR *lpf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *api
|
||||
{
|
||||
hpsxa[0] = NULL;
|
||||
hpsxa[1] = NULL;
|
||||
hpsxa[2] = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -865,6 +869,7 @@ SH_ShowPropertiesDialog(WCHAR *lpf, LPCITEMIDLIST pidlFolder, LPCITEMIDLIST *api
|
||||
{
|
||||
SHDestroyPropSheetExtArray(hpsxa[0]);
|
||||
SHDestroyPropSheetExtArray(hpsxa[1]);
|
||||
SHDestroyPropSheetExtArray(hpsxa[2]);
|
||||
IDataObject_Release(pDataObj);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user