mirror of
https://github.com/reactos/reactos.git
synced 2025-04-25 16:10:29 +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:
parent
20f87008f7
commit
94d54b18f9
1 changed files with 10 additions and 5 deletions
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue