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