oleautomation (attributo)

L'attributo oleautomation indica che un'interfaccia è compatibile con Automazione.

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

Parametri

string-uuid

Specifica una stringa UUID generata dall'utilità Uuidgen.

interface-attribute-list

Specifica altri attributi che si applicano all'interfaccia nel suo complesso.

interface-name

Specifica il nome dell'interfaccia.

interfaccia di base

Specifica il nome di un'interfaccia di automazione da cui questa interfaccia derivata eredita funzioni membro, codici di stato e attributi di interfaccia. Tutte le interfacce di automazione sono derivate da IUnknown o IDispatch.

Commenti

I parametri e i tipi restituiti specificati per i membri di un'interfaccia [oleautomation] devono essere compatibili con l'automazione, come indicato nella tabella seguente.

Tipo Descrizione
boolean Elemento di dati che può avere il valore VARIANT_TRUE o VARIANT_FALSE. La dimensione corrisponde a VARIANT_BOOL.
unsigned char Elemento dati senza segno a 8 bit.
double Numero a virgola mobile IEEE a 64 bit.
float Numero a virgola mobile IEEE a 32 bit.
int Intero con segno, la cui dimensione è dipendente dal sistema. Nelle piattaforme a 32 bit MIDL considera int un intero con segno a 32 bit.
long Intero con segno a 32 bit.
short Intero con segno a 16 bit.
BSTR Stringa con prefisso di lunghezza, come descritto nell'argomento Di automazione BSTR.
CURRENCY Numero a virgola mobile a 8 byte.
DATE Numero frazionaria a virgola mobile a 64 bit dal 30 dicembre 1899.
SCODE Per i sistemi a 16 bit, tipo di errore predefinito che corrisponde a VT_ERROR.
Enumerazione Typedef  myenum Intero con segno, la cui dimensione è dipendente dal sistema.
Interfaccia IDispatch * Puntatore all'interfaccia IDispatch (VT_DISPATCH).
Interfaccia IUnknown * Puntatore a un'interfaccia che non deriva da IDispatch (VT_UNKNOWN). Qualsiasi interfaccia OLE può essere rappresentata dalla relativa interfaccia IUnknown .
Dispinterface  Typename * Puntatore a un'interfaccia derivata da IDispatch (VT_DISPATCH).
Coclasse  Typename * Puntatore a un nome di coclasse (VT_UNKNOWN).
Interfaccia [oleautomation] Â Typename * Puntatore a un'interfaccia che deriva da IUnknown.
SAFEARRAY(TypeName) TypeName è uno dei tipi precedenti. Matrice di questi tipi.
Typename* TypeName è uno dei tipi precedenti. Puntatore a un tipo.
Decimale Intero binario senza segno a 96 bit ridimensionato da una potenza variabile di 10. Tipo di dati decimale che fornisce una dimensione e una scala per un numero (come nelle coordinate).

 

Un parametro è compatibile con Automazione se il tipo è un tipo compatibile con Automazione, un puntatore a un tipo compatibile con Automazione o safearray di un tipo compatibile con Automazione.

Un tipo restituito è compatibile con Automazione se il tipo è HRESULT, SCODE o void. Tuttavia, MIDL richiede che i metodi di interfaccia restituisca HRESULT o SCODE. La restituzione di void genera un errore del compilatore.

Un membro è compatibile con Automazione se il tipo restituito e tutti i relativi parametri sono compatibili con Automazione.

Un'interfaccia è compatibile con Automazione se derivata da IDispatch o IUnknown, ha l'attributo [oleautomation] e tutte le voci VTBL sono compatibili con l'automazione. Per le piattaforme a 32 bit, la convenzione di chiamata per tutti i metodi nell'interfaccia deve essere STDCALL. Per i sistemi a 16 bit, tutti i metodi devono avere la convenzione di chiamata CDECL.

Ogni dispinterface è implicitamente compatibile con l'automazione. Pertanto, non è consigliabile usare l'attributo [oleautomation] in dispinterface.

L'attributo [oleautomation] non è disponibile quando si esegue la compilazione usando l'opzione /osf del compilatore MIDL.

Flags

TYPEFLAG_FOLEAUTOMATION

Esempi

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.
}

Vedere anche

File IDL (Interface Definition)

Generazione di una libreria dei tipi con MIDL

Esempio di file ODL

Sintassi dei file ODL

/Osf

uuid