http://bugs.winehq.org/show_bug.cgi?id=7447
------- Additional Comments From focht@gmx.net 2007-17-05 08:17 ------- Hello,
another random pick. Version 3.x wasnt available anymore but newer ones (5.x) exhibit same behaviour.
I added missing implementations to let application startup succeed.
--- snip dlls/shell32/iconcache.c --- /**************************************************************************** * SHGetIconOverlayIndexW [SHELL32.@] */ INT WINAPI SHGetIconOverlayIndexW( LPCWSTR pszIconPath, int iIconIndex) { TRACE("%s %d\n", debugstr_w(pszIconPath), iIconIndex);
/* windows tolerates NULL IconPath, returning standard icons (using icon cache manager) for the specific indizes returning -1 now, because wine doesnt handle this case */ if( pszIconPath == NULL) return -1;
return SIC_GetIconIndex( pszIconPath, iIconIndex, 0); }
/**************************************************************************** * SHGetIconOverlayIndexA [SHELL32.@] */ INT WINAPI SHGetIconOverlayIndexA( LPCSTR pszIconPath, int iIconIndex) { INT ret, len; LPWSTR lpwstrFile = NULL;
TRACE("%s %d\n", pszIconPath, iIconIndex);
if( pszIconPath != NULL) { len = MultiByteToWideChar(CP_ACP, 0, pszIconPath, -1, NULL, 0); lpwstrFile = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); MultiByteToWideChar(CP_ACP, 0, pszIconPath, -1, lpwstrFile, len); }
ret = SHGetIconOverlayIndexW( lpwstrFile, iIconIndex);
if( lpwstrFile != NULL) HeapFree(GetProcessHeap(), 0, lpwstrFile);
return ret; } --- snip dlls/shell32/iconcache.c ---
and
--- snip dlls/shell32/shell32.spec --- @ stdcall SHGetIconOverlayIndexA(str long) @ stdcall SHGetIconOverlayIndexW(wstr long) --- snip dlls/shell32/shell32.spec ---
With that fixes applied, the application is happy now. Though the user interface is japanese all over the place.
IJO NASHI :-)
Regards