some unimplemented COM stuff

Malte Starostik Malte.Starostik at
Mon May 28 15:19:33 CDT 2001


I have started implementing a small winelib-program that shall eventually add 
ActiveX support to the Konqueror web browser.
For testing I'm using the Shockwave Flash OCX and experienced some problems 
due to unimplemented functions and features in winelib.
First thing is typelib registration, which doesn't work yet as the debug 
output tells. Okay, did that manually.
Then, for setting the control's properties, I tried the easy way via 
IDispatch::Invoke(), which calls ITypeInfo::Invoke() and that's only a stub :(
I worked around this via evil assembler hacks to call the interface's members 
as given by the vtable offsets in the FUNCDESC using stdcall convention  - 
unfortunately g++ doesn't support specifying a calling convention for method 
pointers like HRESULT (IDispatch::*setProp)(BSTR).
After getting this to work, I hit the next problem:
unimplemented urlmon.RegisterBindStatusCallback and when I use a native 
urlmon.dll it tries to call shlwapi.154, with native shlwapi it still doesn't 
work somehow, but that's a different story.

Anyway, what I'd basically need to get this to work properly is
- typelib registration
- IDispatch::Invoke()
- RegisterBindStatusCallback() and probably asyncronous bind contexts
- probably a "real" URL Moniker, not just CreateURLMoniker() using a File 

What I'd like to know is if anyone is already working on any of these and if 
so what's the status and how I could help getting these implemented. if no 
one started yet, I'd still like to give it a try.


PS: the attached patch fixes urlmon.h not being C++-safe.
Wars don't determine who's right, only who's left.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: urlmon.diff
Type: text/x-c
Size: 589 bytes
Desc: not available
Url :

More information about the wine-devel mailing list