Export (0) Print
Expand All
COM
id
in
int
odl
out
ptr
ref
Expand Minimize

oleautomation attribute

The oleautomation attribute indicates that an interface is compatible with Automation.


[ 
    oleautomation, 
    uuid(string-uuid)
    [ , interface-attribute-list] 
] 
interface interface-name : base-interface
{
    ...
}

Parameters

string-uuid

Specifies a UUID string generated by the Uuidgen utility.

interface-attribute-list

Specifies other attributes that apply to the interface as a whole.

interface-name

Specifies the name of the interface.

base-interface

Specifies the name of an Automation interface from which this derived interface inherits member functions, status codes, and interface attributes. All Automation interfaces are derived from IUnknown or IDispatch.

Remarks

The parameters and return types specified for the members of an [oleautomation] interface must be Automation-compatible, as listed in the following table.

TypeDescription
booleanData item that can have the value VARIANT_TRUE or VARIANT_FALSE. The size corresponds to VARIANT_BOOL.
unsigned char8-bit unsigned data item.
double64-bit IEEE floating-point number.
float32-bit IEEE floating-point number.
intSigned integer, whose size is system dependent. On 32-bit platforms, MIDL treats int as a 32-bit signed integer.
long32-bit signed integer.
short16-bit signed integer.
BSTRLength-prefixed string, as described in the Automation topic BSTR.
CURRENCY8-byte, fixed floating-point number.
DATE64-bit, floating point fractional number of days since December 30, 1899.
SCODEFor 16-bit systems–built-in error type that corresponds to VT_ERROR.
Typedef enum myenumSigned integer, whose size is system dependent.
Interface IDispatch *Pointer to the IDispatch interface (VT_DISPATCH).
Interface IUnknown *Pointer to an interface that does not derive from IDispatch (VT_UNKNOWN). (Any OLE interface can be represented by its IUnknown interface.)
dispinterface Typename *Pointer to an interface derived from IDispatch (VT_DISPATCH).
Coclass Typename *Pointer to a coclass name (VT_UNKNOWN).
[oleautomation] interface  Typename *Pointer to an interface that derives from IUnknown.
SAFEARRAY(TypeName)TypeName is any of the above types. Array of these types.
TypeName *TypeName is any of the above types. Pointer to a type.
Decimal96-bit unsigned binary integer scaled by a variable power of 10. A decimal data type that provides a size and a scale for a number (as in coordinates).

 

A parameter is compatible with Automation if its type is an Automation-compatible type, a pointer to an Automation-compatible type, or a SAFEARRAY of an Automation-compatible type.

A return type is compatible with Automation if its type is an HRESULT, SCODE or void. However, MIDL requires that interface methods return either HRESULT or SCODE. Returning void generates a compiler error.

A member is compatible with Automation if its return type and all its parameters are Automation compatible.

An interface is compatible with Automation if it is derived from IDispatch or IUnknown, it has the [oleautomation] attribute, and all of its VTBL entries are Automation compatible. For 32-bit platforms, the calling convention for all methods in the interface must be STDCALL. For 16-bit systems, all methods must have the CDECL calling convention.

Every dispinterface is implicitly Automation-compatible. Therefore you should not use the [oleautomation] attribute on dispinterface.

The [oleautomation] attribute is not available when you compile using the MIDL compiler /osf switch.

Flags

TYPEFLAG_FOLEAUTOMATION

Examples

library Hello
{
    importlib("stdole32.tlb");
    [
        uuid(12345678-1234-1234-1234-123456789ABC),
        helpstring("Application object for the Hello application."),
        oleautomation,
        dual
    ]
    interface IHello : IDispatch
    {
        // Interface definition statements.
    }

    // Other library definition statements.
}

See also

Interface Definition (IDL) File
Generating a Type Library With MIDL
ODL File Example
ODL File Syntax
/osf
uuid

 

 

Community Additions

ADD
Show:
© 2014 Microsoft