How to Use structs in COM interfaces when Automation
compatibility is not an issue?
Answer / krishna akkulu
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;
};
For more info see : http://vcfaq.mvps.org/com/4.htm
| Is This Answer Correct ? | 0 Yes | 3 No |
C is aggregated by B, which in turn aggregated by A. Our client requested C. What will happen?
How can would you create an instance of the object in COM
What is the use of com component in .net?
Is dcom dead?
Define and explain COM?
Which tool is used to configure the port range and protocols for DCOM communications?
What happens when client calls CoCreateInstance?
Futures of COM
how to call a dll as a COM dll?
What is a moniker ?
What are the different compatibility types when we create a COM component?
What are the purposes of AddRef, Release and QueryInterface functions