Martin Fuchs : shell32: SHELL32_GetItemAttributes()

Martin Fuchs martin-fuchs at gmx.net
Sat Feb 18 08:18:00 CST 2006


Hello,

> This patch is giving me trouble:

does the following patch help to solve your problem?

Regards,

    Martin

Index: shlfolder.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shlfolder.c,v
retrieving revision 1.110
diff -u -p -d -r1.110 shlfolder.c
--- shlfolder.c	11 Feb 2006 19:39:52 -0000	1.110
+++ shlfolder.c	18 Feb 2006 14:02:08 -0000
@@ -425,11 +425,20 @@ HRESULT SHELL32_GetItemAttributes (IShel

         if (!dwAttributes && has_guid) {
 	    WCHAR path[MAX_PATH];
+	    STRRET strret;

 	    /* File attributes are not present in the internal PIDL
structure, so get them from the file system. */
-	    if (SHGetPathFromIDListW(pidl, path))
-		dwAttributes = GetFileAttributesW(path);
-        }
+
+	    HRESULT hr = IShellFolder_GetDisplayNameOf(psf, pidl,
SHGDN_FORPARSING, &strret);
+
+	    if (SUCCEEDED(hr)) {
+		hr = StrRetToBufW(&strret, pidl, path, MAX_PATH);
+
+		/* call GetFileAttributes() only for file system paths, not for
parsing names like "::{...}" */
+		if (SUCCEEDED(hr) && path[0]!=':')
+		    dwAttributes = GetFileAttributesW(path);
+	    }
+	}

         /* Set common attributes */
         *pdwAttributes |= SFGAO_FILESYSTEM | SFGAO_DROPTARGET |
SFGAO_HASPROPSHEET | SFGAO_CANDELETE |



More information about the wine-devel mailing list