David Hedberg : include: Add IEnumShellItems interface declaration.

Alexandre Julliard julliard at winehq.org
Tue Jul 20 11:20:32 CDT 2010


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

Author: David Hedberg <david.hedberg at gmail.com>
Date:   Sat Jul 17 17:21:59 2010 +0200

include: Add IEnumShellItems interface declaration.

---

 dlls/actxprxy/usrmarshal.c |   27 +++++++++++++++++++++++++++
 include/shobjidl.idl       |   29 +++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/dlls/actxprxy/usrmarshal.c b/dlls/actxprxy/usrmarshal.c
index f2aacf8..b9f4f2d 100644
--- a/dlls/actxprxy/usrmarshal.c
+++ b/dlls/actxprxy/usrmarshal.c
@@ -34,6 +34,7 @@
 #include "servprov.h"
 #include "comcat.h"
 #include "docobj.h"
+#include "shobjidl.h"
 
 #include "wine/debug.h"
 
@@ -168,3 +169,29 @@ HRESULT __RPC_STUB IEnumOleDocumentViews_Next_Stub(
     TRACE("(%p)\n", This);
     return IEnumOleDocumentViews_Next( This, cViews, rgpView, pcFetched );
 }
+
+HRESULT CALLBACK IEnumShellItems_Next_Proxy(
+    IEnumShellItems *This,
+    ULONG celt,
+    IShellItem **rgelt,
+    ULONG *pceltFetched)
+{
+    ULONG fetched;
+    TRACE("(%p)->(%d, %p, %p)\n", This, celt, rgelt, pceltFetched);
+    if (!pceltFetched) pceltFetched = &fetched;
+    return IEnumShellItems_RemoteNext_Proxy(This, celt, rgelt, pceltFetched);
+}
+
+HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
+    IEnumShellItems *This,
+    ULONG celt,
+    IShellItem **rgelt,
+    ULONG *pceltFetched)
+{
+    HRESULT hr;
+    TRACE("(%p)->(%d, %p, %p)\n", This, celt, rgelt, pceltFetched);
+    *pceltFetched = 0;
+    hr = IEnumShellItems_Next(This, celt, rgelt, pceltFetched);
+    if (hr == S_OK) *pceltFetched = celt;
+    return hr;
+}
diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index 5ad5bf4..36618a3 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -414,6 +414,35 @@ interface INewWindowManager : IUnknown
 cpp_quote("#define SID_SNewWindowManager IID_INewWindowManager")
 
 /*****************************************************************************
+ * IEnumShellItems interface
+ */
+[
+ object,
+ uuid(70629033-E363-4A28-A567-0DB78006E6D7),
+ pointer_default(unique)
+]
+interface IEnumShellItems : IUnknown
+{
+    [local] HRESULT Next(
+        [in] ULONG celt,
+        [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
+        [out] ULONG *pceltFetched);
+
+    [call_as(Next)] HRESULT RemoteNext(
+        [in] ULONG celt,
+        [out, size_is(celt), length_is(*pceltFetched)] IShellItem **rgelt,
+        [out] ULONG *pceltFetched);
+
+    HRESULT Skip(
+        [in] ULONG celt);
+
+    HRESULT Reset();
+
+    HRESULT Clone(
+        [out] IEnumShellItems **ppenum);
+}
+
+/*****************************************************************************
  * FOLDERSETTINGS
  */
 typedef char *LPVIEWSETTINGS;




More information about the wine-cvs mailing list