ChangeLog: * dlls/shell32/iconcache.c - add stub implementation with correct prototype for ExtractAssociatedIconExA/W * dlls/shell32/shell32.spec - add stub implementation with correct prototype for ExtractAssociatedIconExA/W * include/shellapi.h - add stub implementation with correct prototype for ExtractAssociatedIconExA/W License: X11/LGPL Rolf Kalbermatter Index: include/shellapi.h =================================================================== RCS file: /home/wine/wine/include/shellapi.h,v retrieving revision 1.17 diff -u -r1.17 shellapi.h --- include/shellapi.h 12 Nov 2002 01:05:00 -0000 1.17 +++ include/shellapi.h 29 Nov 2002 23:35:06 -0000 @@ -270,6 +270,9 @@ HICON WINAPI ExtractAssociatedIconA(HINSTANCE,LPSTR,LPWORD); HICON WINAPI ExtractAssociatedIconW(HINSTANCE,LPWSTR,LPWORD); #define ExtractAssociatedIcon WINELIB_NAME_AW(ExtractAssociatedIcon) +HICON WINAPI ExtractAssociatedIconExA(HINSTANCE,LPSTR,LPWORD,LPWORD); +HICON WINAPI ExtractAssociatedIconExW(HINSTANCE,LPWSTR,LPWORD,LPWORD); +#define ExtractAssociatedIconEx WINELIB_NAME_AW(ExtractAssociatedIconEx) HICON WINAPI ExtractIconExA( LPCSTR, INT, HICON *, HICON *, UINT ); HICON WINAPI ExtractIconExW( LPCWSTR, INT, HICON *, HICON *, UINT ); #define ExtractIconEx WINELIB_NAME_AW(ExtractIconEx) Index: dlls/shell32/iconcache.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/iconcache.c,v retrieving revision 1.61 diff -u -r1.61 iconcache.c --- dlls/shell32/iconcache.c 21 Nov 2002 23:56:42 -0000 1.61 +++ dlls/shell32/iconcache.c 29 Nov 2002 23:48:53 -0000 @@ -498,25 +498,33 @@ } /************************************************************************* - * ExtractAssociatedIconExA (SHELL32.@) + * ExtractAssociatedIconExW (SHELL32.@) * * Return icon for given file (either from file itself or from associated * executable) and patch parameters if needed. */ -HICON WINAPI ExtractAssociatedIconExA(DWORD d1, DWORD d2, DWORD d3, DWORD d4) +HICON WINAPI ExtractAssociatedIconExW(HINSTANCE hInst, LPWSTR lpIconPath, LPWORD lpiIconIdx, LPWORD lpiIconId) { - FIXME("(%lx %lx %lx %lx): stub\n", d1, d2, d3, d4); + FIXME("0x%08lx %s %p %p): stub\n", hInst, debugstr_w(lpIconPath), lpiIconIdx, lpiIconId); return 0; } /************************************************************************* - * ExtractAssociatedIconExW (SHELL32.@) + * ExtractAssociatedIconExA (SHELL32.@) * * Return icon for given file (either from file itself or from associated * executable) and patch parameters if needed. */ -HICON WINAPI ExtractAssociatedIconExW(DWORD d1, DWORD d2, DWORD d3, DWORD d4) +HICON WINAPI ExtractAssociatedIconExA(HINSTANCE hInst, LPSTR lpIconPath, LPWORD lpiIconIdx, LPWORD lpiIconId) { - FIXME("(%lx %lx %lx %lx): stub\n", d1, d2, d3, d4); - return 0; + HICON ret; + INT len = MultiByteToWideChar( CP_ACP, 0, lpIconPath, -1, NULL, 0 ); + LPWSTR lpwstrFile = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) ); + + TRACE("0x%08lx %s %p %p)\n", hInst, lpIconPath, lpiIconIdx, lpiIconId); + + MultiByteToWideChar( CP_ACP, 0, lpIconPath, -1, lpwstrFile, len ); + ret = ExtractAssociatedIconExW(hInst, lpwstrFile, lpiIconIdx, lpiIconId); + HeapFree(GetProcessHeap(), 0, lpwstrFile); + return ret; } Index: dlls/shell32/shell32.spec =================================================================== RCS file: /home/wine/wine/dlls/shell32/shell32.spec,v retrieving revision 1.57 diff -u -r1.57 shell32.spec --- dlls/shell32/shell32.spec 4 Nov 2002 23:53:44 -0000 1.57 +++ dlls/shell32/shell32.spec 29 Nov 2002 23:23:38 -0000 @@ -321,8 +321,8 @@ @ stub DragQueryFileAorW @ stdcall DuplicateIcon(long long) DuplicateIcon @ stdcall ExtractAssociatedIconA(long ptr long)ExtractAssociatedIconA -@ stdcall ExtractAssociatedIconExA(long long long long)ExtractAssociatedIconExA -@ stdcall ExtractAssociatedIconExW(long long long long)ExtractAssociatedIconExW +@ stdcall ExtractAssociatedIconExA(long ptr long long)ExtractAssociatedIconExA +@ stdcall ExtractAssociatedIconExW(long ptr long long)ExtractAssociatedIconExW @ stub ExtractAssociatedIconW @ stdcall ExtractIconA(long str long)ExtractIconA @ stdcall ExtractIconEx(ptr long ptr ptr long)ExtractIconExAW