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;
On 11 Jun 2010, at 02:42, David Hedberg david.hedberg@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.