Marshal bug

Mike Hearn mike at
Fri Jul 9 12:59:19 CDT 2004

On Fri, 09 Jul 2004 10:17:07 -0700, Duane Clark wrote:
> If I had some idea of what is going on in the traces, I would attempt to
> do some debugging. Do you know of any "Marshalling for dummies" or some
> such thing? Currrently the traces are complete jibberish to me.
> Is this likely to be a result of the unimplemented functions in the
> traces? fixme:ole:FTMarshalImpl_GetUnmarshalClass (), stub!
> fixme:ole:FTMarshalImpl_MarshalInterface (), stub!

Hmm, well, OLE marshalling isn't something you can explain in 5 minutes
... I keep meaning to do this but if you like I'll post a complete (to my
knowledge) explanation of how it all works say over the weekend or on

But to get you started, I don't know if the FTM stubs are a problem or
not, but this bit almost certainly is:

trace:ole:CoUnmarshalInterface (0x402b4180,{27a4f276-6452-11d2-ba1d-0008c7a01e5d},0x46cb413c)
trace:ole:WINE_StringFromCLSID 0x46cb4014->{402B4180-FA0C-40EE-EBF8-EE40F0CE5360}
         CLSID:  {402b4180-fa0c-40ee-ebf8-ee40f0ce5360}, 
	 IID:    {00000001-0000-0000-c000-000000000046}
warn:ole:CoGetClassObject class {402B4180-FA0C-40EE-EBF8-EE40F0CE5360} not registered

Basically as part of unmarshalling an interface, a "proxy/stub class
factory" is activated. This is a COM object that implements

which as you can see can then be used to construct proxy and stub objects.
Therefore if this object cannot be activated for whatever reason,
unmarshalling cannot continue and we bail out, handing the app a
null vtable which it then dereferences.

So you need to figure out why {402b4180-fa0c-40ee-ebf8-ee40f0ce5360} isn't
being registered, which may involve figuring out what it actually is :)

Good luck! If a more complete marshalling explanation would be useful, let
me know and I'll see what I can do in a few days.

thanks -mike

More information about the wine-devel mailing list