From: Fabian Maurer Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52394 Signed-off-by: Fabian Maurer --- 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