Module: wine Branch: master Commit: 95a46b017c26e975b0f0b0160b647b6325b90775 URL: http://source.winehq.org/git/wine.git/?a=commit;h=95a46b017c26e975b0f0b0160b...
Author: David Hedberg david.hedberg@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;