Previous | Table of Contents | Next |
The value data for type code DCOM value objects can be represented by the following struct:
struct CORBA_TYPECODE
{
FOREIGN_COMPLEX base;
TCKind kind; // TypeCode kind
union TypeSpecific switch(kind)
{case tk_objref:
LPSTR id;
LPSTR name;
case tk_struct:case tk_except:LPSTR id;
LPSTR name;long member_count;[size_is(member_count,)] LPSTR *member_names;[size_is(member_count,)] IUnknown**member_types;
case tk_union: LPSTR id;LPSTR name;long member_count;LPSTR member_names[];[size_is(member_count,)] IUnknown**member_types;[size_is(member_count)] VARIANT *member_labels;IUnknown *discriminator_type;long default_index;
case tk_enum:long member_count;[size_is(member_count,)] LPSTR *member_names;[size_is(member_count,)] IUnknown**member_types;
case tk_string:long length;
case tk_array:
case tk_sequence:long length;IUnknown *content_type;
case tk_alias:
LPSTR | id; | ||||
LPSTR | name; | ||||
long | length; | ||||
IUnknown | *content_type; | ||||
} | |||||
}; |
Note that members of type IUnknown will actually be ICORBATypeCode instances for COM and DICORBATypeCode instances for Automation.