SHELL32: unicode-ify the icon cache and SHGetFileInfo

Mike McCormack mike at codeweavers.com
Sun Mar 21 21:44:07 CST 2004


ChangeLog:
* unicode-ify the icon cache and SHGetFileInfo
-------------- next part --------------
? dlls/shell32/shfldr_nethood.c
? dlls/shell32/tests/shell32_test.exe.spec.c
Index: dlls/shell32/folders.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/folders.c,v
retrieving revision 1.41
diff -u -r1.41 folders.c
--- dlls/shell32/folders.c	21 Jan 2004 22:15:09 -0000	1.41
+++ dlls/shell32/folders.c	22 Mar 2004 02:54:14 -0000
@@ -151,7 +151,6 @@
 }
 
 WCHAR swShell32Name[MAX_PATH];
-char sShell32Name[MAX_PATH];
 
 /**************************************************************************
 *  IExtractIconW_GetIconLocation
Index: dlls/shell32/iconcache.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/iconcache.c,v
retrieving revision 1.74
diff -u -r1.74 iconcache.c
--- dlls/shell32/iconcache.c	11 Feb 2004 06:21:45 -0000	1.74
+++ dlls/shell32/iconcache.c	22 Mar 2004 02:54:14 -0000
@@ -53,7 +53,7 @@
 
 typedef struct
 {
-	LPSTR sSourceFile;	/* file (not path!) containing the icon */
+	LPWSTR sSourceFile;	/* file (not path!) containing the icon */
 	DWORD dwSourceIndex;	/* index within the file, if it is a resoure ID it will be negated */
 	DWORD dwListIndex;	/* index within the iconlist */
 	DWORD dwFlags;		/* GIL_* flags */
@@ -83,7 +83,7 @@
 	if (((LPSIC_ENTRY)p1)->dwSourceIndex != ((LPSIC_ENTRY)p2)->dwSourceIndex) /* first the faster one*/
 	  return 1;
 
-	if (strcasecmp(((LPSIC_ENTRY)p1)->sSourceFile,((LPSIC_ENTRY)p2)->sSourceFile))
+	if (strcmpiW(((LPSIC_ENTRY)p1)->sSourceFile,((LPSIC_ENTRY)p2)->sSourceFile))
 	  return 1;
 
 	return 0;
@@ -94,17 +94,17 @@
  * NOTES
  *  appends an icon pair to the end of the cache
  */
-static INT SIC_IconAppend (LPCSTR sSourceFile, INT dwSourceIndex, HICON hSmallIcon, HICON hBigIcon)
+static INT SIC_IconAppend (LPCWSTR sSourceFile, INT dwSourceIndex, HICON hSmallIcon, HICON hBigIcon)
 {	LPSIC_ENTRY lpsice;
 	INT ret, index, index1;
-       char path[MAX_PATH];
-	TRACE("%s %i %p %p\n", sSourceFile, dwSourceIndex, hSmallIcon ,hBigIcon);
+	WCHAR path[MAX_PATH];
+	TRACE("%s %i %p %p\n", debugstr_w(sSourceFile), dwSourceIndex, hSmallIcon ,hBigIcon);
 
 	lpsice = (LPSIC_ENTRY) SHAlloc (sizeof (SIC_ENTRY));
 
-       GetFullPathNameA(sSourceFile, MAX_PATH, path, NULL);
-	lpsice->sSourceFile = HeapAlloc( GetProcessHeap(), 0, strlen(path)+1 );
-	strcpy( lpsice->sSourceFile, path );
+       GetFullPathNameW(sSourceFile, MAX_PATH, path, NULL);
+	lpsice->sSourceFile = HeapAlloc( GetProcessHeap(), 0, (strlenW(path)+1)*sizeof(WCHAR) );
+	strcpyW( lpsice->sSourceFile, path );
 
 	lpsice->dwSourceIndex = dwSourceIndex;
 
@@ -139,16 +139,16 @@
  * NOTES
  *  gets small/big icon by number from a file
  */
-static INT SIC_LoadIcon (LPCSTR sSourceFile, INT dwSourceIndex)
+static INT SIC_LoadIcon (LPCWSTR sSourceFile, INT dwSourceIndex)
 {	HICON	hiconLarge=0;
 	HICON	hiconSmall=0;
 
-        PrivateExtractIconsA( sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, 0, 1, 0 );
-        PrivateExtractIconsA( sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, 0, 1, 0 );
+        PrivateExtractIconsW( sSourceFile, dwSourceIndex, 32, 32, &hiconLarge, 0, 1, 0 );
+        PrivateExtractIconsW( sSourceFile, dwSourceIndex, 16, 16, &hiconSmall, 0, 1, 0 );
 
 	if ( !hiconLarge ||  !hiconSmall)
 	{
-	  WARN("failure loading icon %i from %s (%p %p)\n", dwSourceIndex, sSourceFile, hiconLarge, hiconSmall);
+	  WARN("failure loading icon %i from %s (%p %p)\n", dwSourceIndex, debugstr_w(sSourceFile), hiconLarge, hiconSmall);
 	  return -1;
 	}
 	return SIC_IconAppend (sSourceFile, dwSourceIndex, hiconSmall, hiconLarge);
@@ -164,15 +164,16 @@
  *  look in the cache for a proper icon. if not available the icon is taken
  *  from the file and cached
  */
-INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex )
-{	SIC_ENTRY sice;
+INT SIC_GetIconIndex (LPCWSTR sSourceFile, INT dwSourceIndex )
+{
+	SIC_ENTRY sice;
 	INT ret, index = INVALID_INDEX;
-       char path[MAX_PATH];
+	WCHAR path[MAX_PATH];
 
-	TRACE("%s %i\n", sSourceFile, dwSourceIndex);
+	TRACE("%s %i\n", debugstr_w(sSourceFile), dwSourceIndex);
 
-       GetFullPathNameA(sSourceFile, MAX_PATH, path, NULL);
-       sice.sSourceFile = path;
+	GetFullPathNameW(sSourceFile, MAX_PATH, path, NULL);
+	sice.sSourceFile = path;
 	sice.dwSourceIndex = dwSourceIndex;
 
 	EnterCriticalSection(&SHELL32_SicCS);
@@ -202,10 +203,10 @@
  * NOTES
  *  retrieves the specified icon from the iconcache. if not found tries to load the icon
  */
-static HICON WINE_UNUSED SIC_GetIcon (LPCSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon )
+static HICON WINE_UNUSED SIC_GetIcon (LPCWSTR sSourceFile, INT dwSourceIndex, BOOL bSmallIcon )
 {	INT index;
 
-	TRACE("%s %i\n", sSourceFile, dwSourceIndex);
+	TRACE("%s %i\n", debugstr_w(sSourceFile), dwSourceIndex);
 
 	index = SIC_GetIconIndex(sSourceFile, dwSourceIndex);
 
@@ -259,7 +260,7 @@
 	    hSm = LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(0), IMAGE_ICON, 16, 16,LR_SHARED);
 	    hLg = LoadImageA(shell32_hInstance, MAKEINTRESOURCEA(0), IMAGE_ICON, 32, 32,LR_SHARED);
 	  }
-         SIC_IconAppend (sShell32Name, index, hSm, hLg);
+         SIC_IconAppend (swShell32Name, index, hSm, hLg);
 	}
 
 	TRACE("hIconSmall=%p hIconBig=%p\n",ShellSmallIconList, ShellBigIconList);
@@ -327,8 +328,8 @@
 	UINT uFlags,
 	int * pIndex)
 {
-	IExtractIconA	*ei;
-	char		szIconFile[MAX_PATH];	/* file containing the icon */
+	IExtractIconW	*ei;
+	WCHAR		szIconFile[MAX_PATH];	/* file containing the icon */
 	INT		iSourceIndex;		/* index or resID(negated) in this file */
 	BOOL		ret = FALSE;
 	UINT		dwFlags = 0;
@@ -337,12 +338,12 @@
 
 	if (SUCCEEDED (IShellFolder_GetUIObjectOf(sh, 0, 1, &pidl, &IID_IExtractIconA, 0, (void **)&ei)))
 	{
-	  if (SUCCEEDED(IExtractIconA_GetIconLocation(ei, uFlags, szIconFile, MAX_PATH, &iSourceIndex, &dwFlags)))
+	  if (SUCCEEDED(IExtractIconW_GetIconLocation(ei, uFlags, szIconFile, MAX_PATH, &iSourceIndex, &dwFlags)))
 	  {
 	    *pIndex = SIC_GetIconIndex(szIconFile, iSourceIndex);
 	    ret = TRUE;
 	  }
-	  IExtractIconA_Release(ei);
+	  IExtractIconW_Release(ei);
 	}
 
 	if (INVALID_INDEX == *pIndex)	/* default icon when failed */
@@ -383,19 +384,27 @@
  */
 INT WINAPI Shell_GetCachedImageIndexA(LPCSTR szPath, INT nIndex, BOOL bSimulateDoc)
 {
+	INT ret, len;
+	LPWSTR szTemp;
+
 	WARN("(%s,%08x,%08x) semi-stub.\n",debugstr_a(szPath), nIndex, bSimulateDoc);
-	return SIC_GetIconIndex(szPath, nIndex);
+
+	len = MultiByteToWideChar( CP_ACP, 0, szPath, -1, NULL, 0 );
+	szTemp = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) );
+	MultiByteToWideChar( CP_ACP, 0, szPath, -1, szTemp, len );
+
+	ret = SIC_GetIconIndex( szTemp, nIndex );
+
+	HeapFree( GetProcessHeap(), 0, szTemp );
+
+	return ret;
 }
 
 INT WINAPI Shell_GetCachedImageIndexW(LPCWSTR szPath, INT nIndex, BOOL bSimulateDoc)
-{	INT ret;
-	LPSTR sTemp = HEAP_strdupWtoA (GetProcessHeap(),0,szPath);
-
+{
 	WARN("(%s,%08x,%08x) semi-stub.\n",debugstr_w(szPath), nIndex, bSimulateDoc);
 
-	ret = SIC_GetIconIndex(sTemp, nIndex);
-	HeapFree(GetProcessHeap(),0,sTemp);
-	return ret;
+	return SIC_GetIconIndex(szPath, nIndex);
 }
 
 INT WINAPI Shell_GetCachedImageIndexAW(LPCVOID szPath, INT nIndex, BOOL bSimulateDoc)
Index: dlls/shell32/shell32_main.c
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_main.c,v
retrieving revision 1.129
diff -u -r1.129 shell32_main.c
--- dlls/shell32/shell32_main.c	26 Jan 2004 20:13:03 -0000	1.129
+++ dlls/shell32/shell32_main.c	22 Mar 2004 02:54:14 -0000
@@ -208,21 +208,21 @@
  *
  */
 
-DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
-                              SHFILEINFOA *psfi, UINT sizeofpsfi,
+DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
+                              SHFILEINFOW *psfi, UINT sizeofpsfi,
                               UINT flags )
 {
-       char szLocation[MAX_PATH], szFullPath[MAX_PATH];
+    WCHAR szLocation[MAX_PATH], szFullPath[MAX_PATH];
 	int iIndex;
 	DWORD ret = TRUE, dwAttributes = 0;
 	IShellFolder * psfParent = NULL;
-	IExtractIconA * pei = NULL;
+	IExtractIconW * pei = NULL;
 	LPITEMIDLIST	pidlLast = NULL, pidl = NULL;
 	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" : path, dwFileAttributes, psfi, psfi->dwAttributes, sizeofpsfi, flags);
+	  (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;
@@ -236,11 +236,11 @@
 
        if (!(flags & SHGFI_PIDL)){
             /* SHGitFileInfo should work with absolute and relative paths */
-            if (PathIsRelativeA(path)){
-                GetCurrentDirectoryA(MAX_PATH, szLocation);
-                PathCombineA(szFullPath, szLocation, path);
+            if (PathIsRelativeW(path)){
+                GetCurrentDirectoryW(MAX_PATH, szLocation);
+                PathCombineW(szFullPath, szLocation, path);
             } else {
-                lstrcpynA(szFullPath, path, MAX_PATH);
+                lstrcpynW(szFullPath, path, MAX_PATH);
             }
         }
 
@@ -251,16 +251,16 @@
 	  IMAGE_DOS_HEADER mz_header;
 	  IMAGE_NT_HEADERS nt;
 	  DWORD len;
-	  char magic[4];
+	  WCHAR magic[4];
 
 	  if (flags != SHGFI_EXETYPE) return 0;
 
-         status = GetBinaryTypeA (szFullPath, &BinaryType);
+         status = GetBinaryTypeW (szFullPath, &BinaryType);
 	  if (!status) return 0;
 	  if ((BinaryType == SCS_DOS_BINARY)
 		|| (BinaryType == SCS_PIF_BINARY)) return 0x4d5a;
 
-         hfile = CreateFileA( szFullPath, GENERIC_READ, FILE_SHARE_READ,
+         hfile = CreateFileW( szFullPath, GENERIC_READ, FILE_SHARE_READ,
 		NULL, OPEN_EXISTING, 0, 0 );
 	  if ( hfile == INVALID_HANDLE_VALUE ) return 0;
 
@@ -313,7 +313,7 @@
 	if (flags & SHGFI_PIDL) {
 	    pidl = ILClone((LPCITEMIDLIST)path);
 	} else if (!(flags & SHGFI_USEFILEATTRIBUTES)) {
-           hr = SHILCreateFromPathA(szFullPath, &pidl, &dwAttributes);
+           hr = SHILCreateFromPathW(szFullPath, &pidl, &dwAttributes);
 	}
 
         if ((flags & SHGFI_PIDL) || !(flags & SHGFI_USEFILEATTRIBUTES))
@@ -343,34 +343,40 @@
 	{
 	  if (flags & SHGFI_USEFILEATTRIBUTES)
 	  {
-           strcpy (psfi->szDisplayName, PathFindFileNameA(szFullPath));
+           lstrcpyW (psfi->szDisplayName, PathFindFileNameW(szFullPath));
 	  }
 	  else
 	  {
 	    STRRET str;
 	    hr = IShellFolder_GetDisplayNameOf(psfParent, pidlLast, SHGDN_INFOLDER, &str);
-	    StrRetToStrNA (psfi->szDisplayName, MAX_PATH, &str, pidlLast);
+	    StrRetToStrNW (psfi->szDisplayName, MAX_PATH, &str, pidlLast);
 	  }
 	}
 
 	/* get the type name */
 	if (SUCCEEDED(hr) && (flags & SHGFI_TYPENAME))
         {
+            WCHAR szFile[] = { 'F','i','l','e',0 };
+            WCHAR szDashFile[] = { '-','f','i','l','e',0 };
             if (!(flags & SHGFI_USEFILEATTRIBUTES))
-                _ILGetFileType(pidlLast, psfi->szTypeName, 80);
+            {
+                char ftype[80];
+                _ILGetFileType(pidlLast, ftype, 80);
+                MultiByteToWideChar(CP_ACP, 0, ftype, -1, psfi->szTypeName, 80 );
+            }
             else
             {
                 if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
-                   strcat (psfi->szTypeName, "File");
+                   strcatW (psfi->szTypeName, szFile);
                 else 
                 {
-                   char sTemp[64];
-                   strcpy(sTemp,PathFindExtensionA(szFullPath));
-                   if (!( HCR_MapTypeToValueA(sTemp, sTemp, 64, TRUE)
-                        && HCR_MapTypeToValueA(sTemp, psfi->szTypeName, 80, FALSE )))
+                   WCHAR sTemp[64];
+                   lstrcpyW(sTemp,PathFindExtensionW(szFullPath));
+                   if (!( HCR_MapTypeToValueW(sTemp, sTemp, 64, TRUE)
+                        && HCR_MapTypeToValueW(sTemp, psfi->szTypeName, 80, FALSE )))
                    {
-                       lstrcpynA (psfi->szTypeName, sTemp, 64);
-                       strcat (psfi->szTypeName, "-file");
+                       lstrcpynW (psfi->szTypeName, sTemp, 64);
+                       strcatW (psfi->szTypeName, szDashFile);
                    }
                 }
             }
@@ -394,11 +400,11 @@
 
 	  if (SUCCEEDED(hr))
 	  {
-           hr = IExtractIconA_GetIconLocation(pei, (flags & SHGFI_OPENICON)? GIL_OPENICON : 0,szLocation, MAX_PATH, &iIndex, &uFlags);
+           hr = IExtractIconW_GetIconLocation(pei, (flags & SHGFI_OPENICON)? GIL_OPENICON : 0,szLocation, MAX_PATH, &iIndex, &uFlags);
            psfi->iIcon = iIndex;
 
 	    if(uFlags != GIL_NOTFILENAME)
-	      strcpy (psfi->szDisplayName, szLocation);
+	      lstrcpyW (psfi->szDisplayName, szLocation);
 	    else
 	      ret = FALSE;
 
@@ -412,23 +418,24 @@
 
 	  if (flags & SHGFI_USEFILEATTRIBUTES)
 	  {
-	    char sTemp [MAX_PATH];
-	    char * szExt;
+	    WCHAR sTemp [MAX_PATH];
+	    WCHAR * szExt;
 	    DWORD dwNr=0;
 
-	    lstrcpynA(sTemp, szFullPath, MAX_PATH);
+	    lstrcpynW(sTemp, szFullPath, MAX_PATH);
 
             if (dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
                psfi->iIcon = 2;
             else
             {
+               WCHAR p1W[] = {'%','1',0};
                psfi->iIcon = 0;
-               szExt = (LPSTR) PathFindExtensionA(sTemp);
-               if ( szExt && HCR_MapTypeToValueA(szExt, sTemp, MAX_PATH, TRUE)
-                   && HCR_GetDefaultIconA(sTemp, sTemp, MAX_PATH, &dwNr))
+               szExt = (LPWSTR) PathFindExtensionW(sTemp);
+               if ( szExt && HCR_MapTypeToValueW(szExt, sTemp, MAX_PATH, TRUE)
+                   && HCR_GetDefaultIconW(sTemp, sTemp, MAX_PATH, &dwNr))
                {
-                  if (!strcmp("%1",sTemp))            /* icon is in the file */
-                     strcpy(sTemp, szFullPath);
+                  if (!lstrcmpW(p1W,sTemp))            /* icon is in the file */
+                     strcpyW(sTemp, szFullPath);
 
                   if (flags & SHGFI_SYSICONINDEX) 
                   {
@@ -438,7 +445,7 @@
                   else 
                   {
                       IconNotYetLoaded=FALSE;
-                      PrivateExtractIconsA(sTemp,dwNr,(flags & SHGFI_SMALLICON) ? 
+                      PrivateExtractIconsW(sTemp,dwNr,(flags & SHGFI_SMALLICON) ? 
                         GetSystemMetrics(SM_CXSMICON) : GetSystemMetrics(SM_CXICON),
                         (flags & SHGFI_SMALLICON) ? GetSystemMetrics(SM_CYSMICON) :
                         GetSystemMetrics(SM_CYICON), &psfi->hIcon,0,1,0);
@@ -477,7 +484,7 @@
 	if(pidlLast) SHFree(pidlLast);
 #ifdef MORE_DEBUG
 	TRACE ("icon=%p index=0x%08x attr=0x%08lx name=%s type=%s ret=0x%08lx\n",
-		psfi->hIcon, psfi->iIcon, psfi->dwAttributes, psfi->szDisplayName, psfi->szTypeName, ret);
+		psfi->hIcon, psfi->iIcon, psfi->dwAttributes, debugstr_w(psfi->szDisplayName), debugstr_w(psfi->szTypeName), ret);
 #endif
 	return ret;
 }
@@ -486,28 +493,28 @@
  * SHGetFileInfoW			[SHELL32.@]
  */
 
-DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
-                              SHFILEINFOW *psfi, UINT sizeofpsfi,
+DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
+                              SHFILEINFOA *psfi, UINT sizeofpsfi,
                               UINT flags )
 {
 	INT len;
-	LPSTR temppath;
+	LPWSTR temppath;
 	DWORD ret;
-	SHFILEINFOA temppsfi;
+	SHFILEINFOW temppsfi;
 
 	if (flags & SHGFI_PIDL) {
 	  /* path contains a pidl */
-	  temppath = (LPSTR) path;
+	  temppath = (LPWSTR) path;
 	} else {
-	  len = WideCharToMultiByte(CP_ACP, 0, path, -1, NULL, 0, NULL, NULL);
-	  temppath = HeapAlloc(GetProcessHeap(), 0, len);
-	  WideCharToMultiByte(CP_ACP, 0, path, -1, temppath, len, NULL, NULL);
+	  len = MultiByteToWideChar(CP_ACP, 0, path, -1, NULL, 0);
+	  temppath = HeapAlloc(GetProcessHeap(), 0, len*sizeof(WCHAR));
+	  MultiByteToWideChar(CP_ACP, 0, path, -1, temppath, len);
 	}
 
 	if(psfi && (flags & SHGFI_ATTR_SPECIFIED))
                temppsfi.dwAttributes=psfi->dwAttributes;
 
-	ret = SHGetFileInfoA(temppath, dwFileAttributes, (psfi == NULL)? NULL : &temppsfi, sizeof(temppsfi), flags);
+	ret = SHGetFileInfoW(temppath, dwFileAttributes, (psfi == NULL)? NULL : &temppsfi, sizeof(temppsfi), flags);
 
         if (psfi)
         {
@@ -518,9 +525,9 @@
             if(flags & SHGFI_ATTRIBUTES)
                 psfi->dwAttributes=temppsfi.dwAttributes;
             if(flags & (SHGFI_DISPLAYNAME|SHGFI_ICONLOCATION))
-                MultiByteToWideChar(CP_ACP, 0, temppsfi.szDisplayName, -1, psfi->szDisplayName, sizeof(psfi->szDisplayName));
+                WideCharToMultiByte(CP_ACP, 0, temppsfi.szDisplayName, -1, psfi->szDisplayName, sizeof(psfi->szDisplayName), NULL, NULL);
             if(flags & SHGFI_TYPENAME)
-                MultiByteToWideChar(CP_ACP, 0, temppsfi.szTypeName, -1, psfi->szTypeName, sizeof(psfi->szTypeName));
+                WideCharToMultiByte(CP_ACP, 0, temppsfi.szTypeName, -1, psfi->szTypeName, sizeof(psfi->szTypeName), NULL, NULL);
         }
         if(!(flags & SHGFI_PIDL)) HeapFree(GetProcessHeap(), 0, temppath);
 	return ret;
@@ -916,7 +923,6 @@
 
 	    /* get full path to this DLL for IExtractIconW_fnGetIconLocation() */
 	    GetModuleFileNameW(hinstDLL, swShell32Name, MAX_PATH);
-	    WideCharToMultiByte(CP_ACP, 0, swShell32Name, -1, sShell32Name, MAX_PATH, NULL, NULL);
 
 	    InitCommonControlsEx(NULL);
 
Index: dlls/shell32/shell32_main.h
===================================================================
RCS file: /home/wine/wine/dlls/shell32/shell32_main.h,v
retrieving revision 1.82
diff -u -r1.82 shell32_main.h
--- dlls/shell32/shell32_main.h	18 Mar 2004 04:04:29 -0000	1.82
+++ dlls/shell32/shell32_main.h	22 Mar 2004 02:54:14 -0000
@@ -53,7 +53,7 @@
 BOOL SIC_Initialize(void);
 void SIC_Destroy(void);
 BOOL PidlToSicIndex (IShellFolder * sh, LPCITEMIDLIST pidl, BOOL bBigIcon, UINT uFlags, int * pIndex);
-INT SIC_GetIconIndex (LPCSTR sSourceFile, INT dwSourceIndex );
+INT SIC_GetIconIndex (LPCWSTR sSourceFile, INT dwSourceIndex );
 
 /* Classes Root */
 BOOL HCR_MapTypeToValueW(LPCWSTR szExtension, LPWSTR szFileType, DWORD len, BOOL bPrependDot);
@@ -234,6 +234,5 @@
 BOOL WINAPI ShellExecuteExW32(LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc);
 
 extern WCHAR swShell32Name[MAX_PATH];
-extern char sShell32Name[MAX_PATH];
 
 #endif


More information about the wine-patches mailing list