It's not a simple task to pass structures in COM/DCOM. 1. A structure must be of the type VT_RECORD. 2. All the structure's fields must be of an automation-compatible type. 3. The structure must be described in a TLB. 4. The structure must have a GUID (assigned in the IDL file). 5. A special structure-oriented interface IRecordInfo must be used to manipulate structures (IRecordInfo::RecordCreate(), IRecordInfo::RecordDestroy(), etc.).