How to Use structs in COM interfaces when Automation
compatibility is not an issue?
Answer Posted / 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 |
Post New Answer View All Answers
Does .net replace com?
What is the difference between aggregated and contained objects?
how to call a dll as a COM dll?
Is dcom dead?
What are queued components?
Suppose we have object B and aggregated object C (in- proc server), created by B. Can you access any interface of B from C?
Suppose we have object b and aggregated object c (in- proc server), created by b. Can you access any interface of b from c? What?s the difference between aggregated and contained objects?
Define and explain about COM?
What is the use of com component in .net?
Which namespace do the classes, allowing you to support COM functionality, are located?
Explain Futures of COM?
Can I use .net components from com programs?
How to create an instance of the object in COM?
How do we create dcom object in vb6?
Can I use com components from .net programs?