IDL trouble (patch: adding IEnumShellItems interface declaration.)

David Hedberg david.hedberg at gmail.com
Thu Jun 10 20:42:03 CDT 2010


Hello everyone,

I'm having some trouble with this simple patch. Specifically, it breaks compiling of dlls/actxprxy, producing the message:

*****
../../tools/winegcc/winegcc -m32 -B../../tools/winebuild --sysroot=../.. -fasynchronous-unwind-tables -shared ./actxprxy.spec usrmarshal.o   actxprxy_activscp_p.o actxprxy_comcat_p.o actxprxy_docobj_p.o actxprxy_hlink_p.o actxprxy_htiframe_p.o actxprxy_objsafe_p.o actxprxy_ocmm_p.o actxprxy_servprov_p.o actxprxy_shobjidl_p.o actxprxy_urlhist_p.o   dlldata.o  -o actxprxy.dll.so  -luuid -loleaut32 -lole32 -lrpcrt4 -lkernel32 -lntdll  ../../libs/port/libwine_port.a  -L/usr/local/valgrind-svn/lib
actxprxy_shobjidl_p.o: In function `IEnumShellItems_RemoteNext_Stub':
/home/david/Projects/wine/git/dlls/actxprxy/actxprxy_shobjidl_p.c:6507: undefined reference to `IEnumShellItems_Next_Stub'
actxprxy_shobjidl_p.o:(.data.rel.ro+0xf0): undefined reference to `IEnumShellItems_Next_Proxy'
*****

It compiles if I remove the [call_as] attribute, but I guess that would kind of break the interface. Any obvious mistakes in the patch, or grammar not supported by widl?

Thanks,
David

---
 include/shobjidl.idl |   30 ++++++++++++++++++++++++++++++
 1 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index 6bd0244..97cd82f 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -385,6 +385,36 @@ typedef enum tagNWMF {
 } NWMF;
 
 /*****************************************************************************
+ * IEnumShellItems interface
+ */
+[
+ object,
+ uuid(70629033-E363-4A28-A567-0DB78006E6D7),
+ pointer_default(unique)
+]
+interface IEnumShellItems : IUnknown
+{
+    [local] HRESULT Next(
+        [in, annotation("__in")] ULONG celt,
+        [out, size_is(celt), length_is(*pceltFetched), annotation("__out_ecount_part(celt, *pceltFetched)")]
+             IShellItem **rgelt,
+        [out, annotation("__out_opt __deref_out_range(0, celt)")] 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;
-- 
1.7.1




More information about the wine-devel mailing list