IDL trouble (patch: adding IEnumShellItems interface declaration.)
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
On 11 Jun 2010, at 02:42, David Hedberg <david.hedberg(a)gmail.com> wrote:
Hello everyone,
I'm having some trouble with this simple patch. Specifically, it breaks compiling of dlls/actxprxy, producing the message:
*****
/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?
You need to add an implementation of IEnumShellItems_Next_Proxy/Stub to usrmarshal.c Huw.
participants (2)
-
David Hedberg -
Huw Davies