- 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:
Johannes Anderwald 2009-05-07 18:21:53 +00:00
parent 20f87008f7
commit 94d54b18f9

View file

@ -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);
}