From what I've read when someone creates a custom interface for COM, an IDL file is generated, then the MIDL compiler uses the IDL file to create proxy and stub code that works with the standard COM RPC functionality.. So under some (most) circumstances wine's COM implementation would only have to facilitate the sending and recieving of the marshaled data ..
Not to minimize the work involved .. The standard marshaling would have to do all the generic COM interfaces like IUnknown, IStorage, IStream (I think). Even though full implementations of those would be available . But most components would have custom interfaces so they would also have their own marshaling code ..
If I'm 100% correct then , I guess, there wouldn't be a need for the type information. Yet it exists .. Unless the type info is used for something other than marshaling.
Daniel Walker