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 |
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?
Which namespace do the classes, allowing you to support COM functionality, are located?
C is aggregated by B, which in turn aggregated by A. Our client requested C. What will happen?
What is IUnknown? What methods are provided by IUnknown?
Once I have developed the com wrapper do I have to still register the com in registry?
what is oops
what is far pointer and what are the use of far poiter in com/dcom ?????
Suppose we have object B and aggregated object C (in- proc server), created by B. Can you access any interface of B from C?
Write a JCL to copy only selected members from a partitioned data set to another partitioned data set. (Use: IEBCOPY)
Explain queued components.
What is reference counting in com?