[PATCH 2/2] shell32: Fix regression preventing explorer to open control panel applets
Fabian Maurer
wine at gitlab.winehq.org
Tue May 3 20:05:37 CDT 2022
From: Fabian Maurer <dark.shadow4 at web.de>
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52394
Signed-off-by: Fabian Maurer <dark.shadow4 at web.de>
---
dlls/shell32/shlfolder.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/shell32/shlfolder.c b/dlls/shell32/shlfolder.c
index 01496714c6a..dcc62108c1e 100644
--- a/dlls/shell32/shlfolder.c
+++ b/dlls/shell32/shlfolder.c
@@ -384,6 +384,7 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder2 *psf, LPCITEMIDLIST pidl, LPDWO
{
DWORD dwAttributes;
BOOL has_guid;
+ PIDLDATA* data;
static const DWORD dwSupportedAttr=
SFGAO_CANCOPY | /*0x00000001 */
SFGAO_CANMOVE | /*0x00000002 */
@@ -409,6 +410,7 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder2 *psf, LPCITEMIDLIST pidl, LPDWO
}
has_guid = _ILGetGUIDPointer(pidl) != NULL;
+ data = _ILGetDataPointer (pidl);
dwAttributes = *pdwAttributes;
@@ -417,10 +419,10 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder2 *psf, LPCITEMIDLIST pidl, LPDWO
SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANLINK;
} else if (has_guid && _ILIsPidlSimple(pidl) && HCR_GetFolderAttributes(pidl, &dwAttributes)) {
*pdwAttributes = dwAttributes;
- } else if (_ILGetDataPointer (pidl)) {
+ } else if (data) {
DWORD file_attr = _ILGetFileAttributes (pidl, NULL, 0);
- if (!file_attr) {
+ if (!file_attr && data->type != PT_CPLAPPLET) {
WCHAR path[MAX_PATH];
STRRET strret;
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/31
More information about the wine-devel
mailing list