Answers

Question and Answer:

  Home  COM DCOM

⟩ How to Use structs in COM interfaces when Automation compatibility is not an issue?

Structs, also known as User Defined Types (UDTs), can be

used in Automation- compatible interfaces

An Automation- compatible struct may contain only primitive

Automation types as its members.

Nesting structs is not allowed, but VARIANT is allowed thus

enabling nested structs (you can store a struct in a

VARIANT).

In order for a struct to be usable for Automation-

compatible interfaces, the struct must be described in a

type library and it must be declared with its own GUID:

[uuid(21602F40-CC62-11d4-AA2B-00A0CC39CFE0)]

struct MyStruct

{

[helpstring("A long value")]

long nLongValue;

[helpstring("A string")]

BSTR bstrStringValue;

};

// Later in the IDL file

[uuid(...), version(...), helpstring(...)]

library MyLib

{

...

struct MyStruct;

};

 210 views

More Questions for you: