shlwapi: IUnknown_EnumObjects

Huw D M Davies h.davies1 at physics.ox.ac.uk
Wed Aug 10 05:37:25 CDT 2005


        Huw Davies <huw at codeweavers.com>
        Implement IUnknown_EnumObjects
-- 
Huw Davies
huw at codeweavers.com
Index: dlls/shlwapi/ordinal.c
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/ordinal.c,v
retrieving revision 1.111
diff -u -p -r1.111 ordinal.c
--- dlls/shlwapi/ordinal.c	9 Aug 2005 10:21:35 -0000	1.111
+++ dlls/shlwapi/ordinal.c	10 Aug 2005 10:35:47 -0000
@@ -3579,6 +3579,31 @@ BOOL WINAPI GetOpenFileNameWrapW(LPOPENF
   return pGetOpenFileNameW(ofn);
 }
 
+/*************************************************************************
+ *      @	[SHLWAPI.404]
+ */
+HRESULT WINAPI IUnknown_EnumObjects(LPSHELLFOLDER lpFolder, HWND hwnd, SHCONTF flags, IEnumIDList **ppenum)
+{
+    IPersist *persist;
+    HRESULT hr;
+
+    hr = IShellFolder_QueryInterface(lpFolder, &IID_IPersist, (LPVOID)&persist);
+    if(SUCCEEDED(hr))
+    {
+        CLSID clsid;
+        hr = IPersist_GetClassID(persist, &clsid);
+        if(SUCCEEDED(hr))
+        {
+            if(IsEqualCLSID(&clsid, &CLSID_ShellFSFolder))
+                hr = IShellFolder_EnumObjects(lpFolder, hwnd, flags, ppenum);
+            else
+                hr = E_FAIL;
+        }
+        IPersist_Release(persist);
+    }
+    return hr;
+}
+
 /* INTERNAL: Map from HLS color space to RGB */
 static WORD WINAPI ConvertHue(int wHue, WORD wMid1, WORD wMid2)
 {
Index: dlls/shlwapi/shlwapi.spec
===================================================================
RCS file: /home/wine/wine/dlls/shlwapi/shlwapi.spec,v
retrieving revision 1.104
diff -u -p -r1.104 shlwapi.spec
--- dlls/shlwapi/shlwapi.spec	9 Aug 2005 20:34:57 -0000	1.104
+++ dlls/shlwapi/shlwapi.spec	10 Aug 2005 10:35:47 -0000
@@ -401,7 +401,7 @@
 401 stdcall -noname PageSetupDlgWrapW(ptr)
 402 stdcall -noname PrintDlgWrapW(ptr)
 403 stdcall -noname GetOpenFileNameWrapW(ptr)
-404 stub -noname IShellFolder_EnumObjects
+404 stdcall -noname IUnknown_EnumObjects(ptr ptr long ptr)
 405 stdcall -noname MLBuildResURLA(str ptr long str ptr long)
 406 stdcall -noname MLBuildResURLW(wstr ptr long wstr ptr long)
 407 stub -noname AssocMakeProgid



More information about the wine-patches mailing list