Index: dlls/shell32/shell32.spec =================================================================== RCS file: /home/wine/wine/dlls/shell32/shell32.spec,v retrieving revision 1.115 diff -u -r1.115 shell32.spec --- dlls/shell32/shell32.spec 10 Sep 2007 15:19:40 -0000 1.115 +++ dlls/shell32/shell32.spec 22 Sep 2007 20:29:03 -0000 @@ -156,7 +156,7 @@ 165 stdcall -noname SHCreateDirectory(long ptr) 166 stdcall -noname CallCPLEntry16(long long long long long long) 167 stdcall -noname SHAddFromPropSheetExtArray(long long long) - 168 stdcall -noname SHCreatePropSheetExtArray(long str long) + 168 stdcall -noname SHCreatePropSheetExtArray(long wstr long) 169 stdcall -noname SHDestroyPropSheetExtArray(long) 170 stdcall -noname SHReplaceFromPropSheetExtArray(long long long long) 171 stdcall -noname PathCleanupSpec(ptr ptr) @@ -182,7 +182,7 @@ 191 stdcall -noname SHUpdateImageA(str long long long) 192 stdcall -noname SHUpdateImageW(wstr long long long) 193 stdcall -noname SHHandleUpdateImage(ptr) - 194 stub SHCreatePropSheetExtArrayEx + 194 stdcall -noname SHCreatePropSheetExtArrayEx(long wstr long ptr) 195 stdcall -noname SHFree(ptr) 196 stdcall -noname SHAlloc(long) 197 stub SHGlobalDefect Index: dlls/shell32/shellord.c =================================================================== RCS file: /home/wine/wine/dlls/shell32/shellord.c,v retrieving revision 1.152 diff -u -r1.152 shellord.c --- dlls/shell32/shellord.c 13 Sep 2007 12:19:07 -0000 1.152 +++ dlls/shell32/shellord.c 22 Sep 2007 20:33:26 -0000 @@ -1588,6 +1588,14 @@ */ HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface) { + return SHCreatePropSheetExtArrayEx(hKey, pszSubKey, max_iface, NULL); +} + +/************************************************************************* + * SHCreatePropSheetExtArrayEx [SHELL32.194] + */ +HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY hKey, LPCWSTR pszSubKey, UINT max_iface, IDataObject *pDataObj) +{ static const WCHAR szPropSheetSubKey[] = {'s','h','e','l','l','e','x','\\','P','r','o','p','e','r','t','y','S','h','e','e','t','H','a','n','d','l','e','r','s',0}; WCHAR szHandler[64]; DWORD dwHandlerLen; @@ -1652,7 +1660,7 @@ { if (SUCCEEDED(pspsx->lpVtbl->QueryInterface(pspsx, &IID_IShellExtInit, (PVOID *)&psxi))) { - if (SUCCEEDED(psxi->lpVtbl->Initialize(psxi, NULL, NULL, hKey))) + if (SUCCEEDED(psxi->lpVtbl->Initialize(psxi, NULL, pDataObj, hKey))) { /* Add the IShellPropSheetExt instance to the array */ psxa->pspsx[psxa->uiCount++] = pspsx; Index: include/shlobj.h =================================================================== RCS file: /home/wine/wine/include/shlobj.h,v retrieving revision 1.114 diff -u -r1.114 shlobj.h --- include/shlobj.h 18 Sep 2007 10:33:31 -0000 1.114 +++ include/shlobj.h 22 Sep 2007 20:38:38 -0000 @@ -43,6 +43,7 @@ LPVOID WINAPI SHAlloc(ULONG); HRESULT WINAPI SHCoCreateInstance(LPCWSTR,const CLSID*,IUnknown*,REFIID,LPVOID*); HPSXA WINAPI SHCreatePropSheetExtArray(HKEY,LPCWSTR,UINT); +HPSXA WINAPI SHCreatePropSheetExtArrayEx(HKEY,LPCWSTR,UINT,IDataObject*); DWORD WINAPI SHCLSIDFromStringA(LPCSTR,CLSID*); DWORD WINAPI SHCLSIDFromStringW(LPCWSTR,CLSID*); #define SHCLSIDFromString WINELIB_NAME_AW(SHCLSIDFromString)