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


Please Help Members By Posting Answers For Below Questions

Does .net replace com?

559


How do we create dcom object in vb6?

693


What is the difference between aggregated and contained objects?

567


Once I have developed the com wrapper do I have to still register the com in registry?

655


Can I use .net components from com programs?

611






What are queued components?

584


Can you explain what is dcom?

543


how to call a dll as a COM dll?

717


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?

503


What is the use of com component in .net?

593


Can I use com components from .net programs?

603


Explain Futures of COM?

576


Suppose we have object B and aggregated object C (in- proc server), created by B. Can you access any interface of B from C?

582


Is dcom dead?

623


Define and explain about COM?

613