Thomas Weidenmueller : shell32: Implement SHCreatePropSheetExtArrayEx.

Alexandre Julliard julliard at winehq.org
Wed Sep 26 07:46:17 CDT 2007


Module: wine
Branch: master
Commit: 1244e8c7d4f433345e9a3ad5e285044ec61673d3
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=1244e8c7d4f433345e9a3ad5e285044ec61673d3

Author: Thomas Weidenmueller <wine-patches at reactsoft.com>
Date:   Tue Sep 25 11:58:40 2007 -0600

shell32: Implement SHCreatePropSheetExtArrayEx.

---

 dlls/shell32/shell32.spec |    4 ++--
 dlls/shell32/shellord.c   |   10 +++++++++-
 include/shlobj.h          |    1 +
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/dlls/shell32/shell32.spec b/dlls/shell32/shell32.spec
index 9beb6d3..6928538 100644
--- a/dlls/shell32/shell32.spec
+++ b/dlls/shell32/shell32.spec
@@ -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
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index 52c2934..e3b77cf 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -1588,6 +1588,14 @@ UINT WINAPI SHAddFromPropSheetExtArray(HPSXA hpsxa, LPFNADDPROPSHEETPAGE lpfnAdd
  */
 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 @@ HPSXA WINAPI SHCreatePropSheetExtArray(HKEY hKey, LPCWSTR pszSubKey, UINT max_if
                         {
                             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;
diff --git a/include/shlobj.h b/include/shlobj.h
index cd5562d..d93a69d 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -43,6 +43,7 @@ UINT         WINAPI SHAddFromPropSheetExtArray(HPSXA,LPFNADDPROPSHEETPAGE,LPARAM
 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)




More information about the wine-cvs mailing list