Typelib marshalling BSTRs
mike at theoretic.com
Fri Jul 18 15:36:22 CDT 2003
> There is no way of expressing size_of once the IDL is in TypeLib form. It is
> effectively ignored. However, it is used in the proxy and stub functions
> generated. I'm not sure what interface it is marshalling here, but your
> error would appear to be elsewhere.
How does typelib marshalling handle arrays? It's marshalling IDispatch,
and this parameter is in IDispatch::GetIDsFromNames().
> Using a test program which dumps type libraries, I can confirm that LPOLESTR
> * is compiled to CHAR** on Windows. I can't quite seem why, but it appears
> that the marshalling that is being done is correct, at least for the
> information available to it.
Well, the invocation returns DISP_E_UNKNOWNNAME, which is a valid return
value for the function, but as the call is successful when using native
ole dlls the most obvious possibility is that the names array is being
incorrectly marshalled (which would lead to no matches being found).
More information about the wine-devel