Previous | Table of Contents | Next |
CORBA constructed types—Structs, Unions, and Exceptions—cannot be mapped directly to ODL constructed types, as Automation
does not support them as valid parameter types. Instead, constructed types are mapped to Pseudo-Automation Interfaces. The
objects that implement Pseudo-Automation Interfaces are called pseudo-objects. Pseudo-objects do not expose the IForeignObject
interface.
Pseudo-Automation Interfaces are Dual Interfaces, but do not derive directly from IDispatch as do Automation View Interfaces.
Instead, they derive from DIForeignComplexType:
// ODL[odl, dual, uuid(...)]interface DIForeignComplexType: IDispatch {
[propget] HRESULT ([retval,out] BSTR *val);HRESULT ([in] IDispatch *pDispatch, [out, retval] IDispatch **val);}
The UUID for DIForeignComplexType is:
{A8B553C0-3B72-11cf-BBFC-444553540000}
This interface can also be implemented as a generic (nondual) Automation Interface, in which case it is named DForeignComplexType
and its UUID is:
{E977F900-3B75-11cf-BBFC-444553540000}
The direct use of the INSTANCE repositoryID () is deprecated. The approved way to retrieve the repositoryId is through the
DIObjectInfo::unique id () method.
The direct use of the INSTANCE clone () method is deprecated. The approved way to clone the data referred to by a reference
is to use the DIObjectInfo::clone () method.