Re: use customized data type in IDispatch.Invoke
"George" <George@discussions.microsoft.com> wrote in message
news:166EA8AC-952E-4B0E-8C5D-48E781F3A991@microsoft.com
I am confused about IRecordInfo Interface. My question is for all the
same interface type instances, they all have the same IRecordInfo?
What's "interface type instance"? I'm not familiar with the term.
I
mean IRecordInfo describes interface field layout information
No, IRecordInfo describes a struct, not an interface.
Especially what means "If the UDT is not stored in a VARIANT you can
pass a pointer to the UDT because an IRecordInfo pointer can be
retrieved from the UDT type description" in the above MSDN link?
Imagine you are a universal marshaller. You need to marshal a method
call to another apartment, given ITypeInfo describing the method. If a
method is declared in IDL as taking a pointer to a UDT, then ITypeInfo
describing that UDT could be retrieved from ITypeInfo of the method. If
the method is declared as taking a VARIANT, then it's not known at
compile time that this VARIANT will eventually refer to a UDT. All the
information necessary for marshalling must be supplied at runtime, in
the form of IRecordInfo pointer held by the same VARIANT.
--
With best wishes,
Igor Tandetnik
With sufficient thrust, pigs fly just fine. However, this is not
necessarily a good idea. It is hard to be sure where they are going to
land, and it could be dangerous sitting under them as they fly
overhead. -- RFC 1925