SHELL32: define some extra SHFGI values
Mike McCormack
mike at codeweavers.com
Tue Feb 15 08:07:54 CST 2005
ChangeLog:
* define some extra SHFGI values
-------------- next part --------------
Index: include/shellapi.h
===================================================================
RCS file: /home/wine/wine/include/shellapi.h,v
retrieving revision 1.30
diff -u -p -r1.30 shellapi.h
--- include/shellapi.h 3 Jan 2005 20:26:06 -0000 1.30
+++ include/shellapi.h 15 Feb 2005 14:07:06 -0000
@@ -115,9 +115,8 @@ UINT WINAPI SHAppBarMessage(DWORD,PAP
#define SHGFI_SHELLICONSIZE 0x000000004 /* get shell size icon */
#define SHGFI_PIDL 0x000000008 /* pszPath is a pidl */
#define SHGFI_USEFILEATTRIBUTES 0x000000010 /* use passed dwFileAttribute */
-#define SHGFI_UNKNOWN1 0x000000020
-#define SHGFI_UNKNOWN2 0x000000040
-#define SHGFI_UNKNOWN3 0x000000080
+#define SHGFI_ADDOVERLAYS 0x000000020
+#define SHGFI_OVERLAYINDEX 0x000000040
#define SHGFI_ICON 0x000000100 /* get icon */
#define SHGFI_DISPLAYNAME 0x000000200 /* get display name */
#define SHGFI_TYPENAME 0x000000400 /* get type name */
Index: dlls/shell32/shell32_main.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_main.c,v
retrieving revision 1.143
diff -u -p -r1.143 shell32_main.c
--- dlls/shell32/shell32_main.c 3 Jan 2005 14:39:08 -0000 1.143
+++ dlls/shell32/shell32_main.c 15 Feb 2005 14:07:07 -0000
@@ -212,8 +212,15 @@ LPWSTR* WINAPI CommandLineToArgvW(LPCWST
return argv;
}
+#define SHGFI_KNOWN_FLAGS \
+ (SHGFI_SMALLICON | SHGFI_OPENICON | SHGFI_SHELLICONSIZE | SHGFI_PIDL | \
+ SHGFI_USEFILEATTRIBUTES | SHGFI_ADDOVERLAYS | SHGFI_OVERLAYINDEX | \
+ SHGFI_ICON | SHGFI_DISPLAYNAME | SHGFI_TYPENAME | SHGFI_ATTRIBUTES | \
+ SHGFI_ICONLOCATION | SHGFI_EXETYPE | SHGFI_SYSICONINDEX | \
+ SHGFI_LINKOVERLAY | SHGFI_SELECTED | SHGFI_ATTR_SPECIFIED)
+
/*************************************************************************
- * SHGetFileInfoA [SHELL32.@]
+ * SHGetFileInfoW [SHELL32.@]
*
*/
@@ -230,8 +237,9 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path
HRESULT hr = S_OK;
BOOL IconNotYetLoaded=TRUE;
- TRACE("(%s fattr=0x%lx sfi=%p(attr=0x%08lx) size=0x%x flags=0x%x)\n",
- (flags & SHGFI_PIDL)? "pidl" : debugstr_w(path), dwFileAttributes, psfi, psfi->dwAttributes, sizeofpsfi, flags);
+ TRACE("%s fattr=0x%lx sfi=%p(attr=0x%08lx) size=0x%x flags=0x%x\n",
+ (flags & SHGFI_PIDL)? "pidl" : debugstr_w(path), dwFileAttributes,
+ psfi, psfi->dwAttributes, sizeofpsfi, flags);
if ((flags & SHGFI_USEFILEATTRIBUTES) && (flags & (SHGFI_ATTRIBUTES|SHGFI_EXETYPE|SHGFI_PIDL)))
return FALSE;
@@ -392,6 +400,12 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path
}
/* ### icons ###*/
+ if (flags & SHGFI_ADDOVERLAYS)
+ FIXME("SHGFI_ADDOVERLAYS unhandled\n");
+
+ if (flags & SHGFI_OVERLAYINDEX)
+ FIXME("SHGFI_OVERLAYINDEX unhandled\n");
+
if (flags & SHGFI_LINKOVERLAY)
FIXME("set icon to link, stub\n");
@@ -424,7 +438,6 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path
/* get icon index (or load icon)*/
if (SUCCEEDED(hr) && (flags & (SHGFI_ICON | SHGFI_SYSICONINDEX)))
{
-
if (flags & SHGFI_USEFILEATTRIBUTES)
{
WCHAR sTemp [MAX_PATH];
@@ -481,8 +494,8 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path
if (SUCCEEDED(hr) && (flags & SHGFI_ICON) && IconNotYetLoaded)
psfi->hIcon = ImageList_GetIcon((flags & SHGFI_SMALLICON) ? ShellSmallIconList:ShellBigIconList, psfi->iIcon, ILD_NORMAL);
- if (flags & (SHGFI_UNKNOWN1 | SHGFI_UNKNOWN2 | SHGFI_UNKNOWN3))
- FIXME("unknown attribute!\n");
+ if (flags & ~SHGFI_KNOWN_FLAGS)
+ FIXME("unknown flags %08x\n", flags & ~SHGFI_KNOWN_FLAGS);
if (psfParent)
IShellFolder_Release(psfParent);
@@ -499,7 +512,7 @@ DWORD WINAPI SHGetFileInfoW(LPCWSTR path
}
/*************************************************************************
- * SHGetFileInfoW [SHELL32.@]
+ * SHGetFileInfoA [SHELL32.@]
*/
DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
More information about the wine-patches
mailing list