atrybut oleautomation

Atrybut oleautomation wskazuje, że interfejs jest zgodny z usługą Automation.

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

Parametry

string-uuid

Określa ciąg UUID generowany przez narzędzie Uuidgen.

interface-attribute-list

Określa inne atrybuty, które mają zastosowanie do interfejsu jako całości.

nazwa interfejsu

Określa nazwę interfejsu.

interfejs podstawowy

Określa nazwę interfejsu automatyzacji, z którego ten interfejs pochodny dziedziczy funkcje składowe, kody stanu i atrybuty interfejsu. Wszystkie interfejsy automatyzacji pochodzą z interfejsów IUnknown lub IDispatch.

Uwagi

Parametry i typy zwracane określone dla elementów członkowskich interfejsu [oleautomation] muszą być zgodne z automatyzacją, jak pokazano w poniższej tabeli.

Typ Opis
boolean Element danych, który może mieć wartość VARIANT_TRUE lub VARIANT_FALSE. Rozmiar odpowiada VARIANT_BOOL.
bez znaku 8-bitowy niepodpisany element danych.
podwójny 64-bitowa liczba zmiennoprzecinkowa IEEE.
float 32-bitowa liczba zmiennoprzecinkowa IEEE.
int Liczba całkowita ze znakiem, której rozmiar jest zależny od systemu. Na 32-bitowych platformach MIDL traktuje liczbę całkowitą ze znakiem 32-bitowym.
długi 32-bitowa liczba całkowita ze znakiem.
krótkie 16-bitowa liczba całkowita ze znakiem.
BSTR Ciąg z prefiksem długości, zgodnie z opisem w temacie Automatyzacja BSTR.
waluty 8 bajtów, stała liczba zmiennoprzecinkowa.
DATA 64-bitowa liczba ułamkowa zmiennoprzecinkowa dni od 30 grudnia 1899 r.
SCODE W przypadku systemów 16-bitowych wbudowany typ błędu odpowiadający VT_ERROR.
Typedef, wyliczeniemyenum Liczba całkowita ze znakiem, której rozmiar jest zależny od systemu.
Interfejs IDispatch * Wskaźnik do interfejsu IDispatch (VT_DISPATCH).
Interfejs IUnknown * Wskaźnik do interfejsu, który nie pochodzi z interfejsu IDispatch (VT_UNKNOWN). (Dowolny interfejs OLE może być reprezentowany przez interfejs IUnknown ).
dispinterfaceTypename * Wskaźnik do interfejsu pochodzącego z interfejsu IDispatch (VT_DISPATCH).
Nazwa typu coclass* Wskaźnik do nazwy wspólnej klasy (VT_UNKNOWN).
[oleautomation] interfaceTypename * Wskaźnik do interfejsu pochodzącego z elementu IUnknown.
SAFEARRAY(TypeName) TypeName jest dowolnym z powyższych typów. Tablica tych typów.
Typename* TypeName jest dowolnym z powyższych typów. Wskaźnik do typu.
Decimal 96-bitowa liczba całkowita binarna bez znaku skalowana przez zmienną moc 10. Typ danych dziesiętnych, który zapewnia rozmiar i skalę dla liczby (podobnie jak we współrzędnych).

 

Parametr jest zgodny z usługą Automation, jeśli jego typem jest typ zgodny z automatyzacją, wskaźnik do typu zgodnego z automatyzacją lub SAFEARRAY typu zgodnego z automatyzacją.

Typ zwracany jest zgodny z usługą Automation, jeśli jego typem jest HRESULT, SCODE lub void. Jednak MIDL wymaga, aby metody interfejsu zwracały wartość HRESULT lub SCODE. Zwracanie wartości void powoduje wygenerowanie błędu kompilatora.

Element członkowski jest zgodny z usługą Automation, jeśli jego typ zwracany i wszystkie jego parametry są zgodne z usługą Automation.

Interfejs jest zgodny z usługą Automation, jeśli pochodzi z interfejsu IDispatch lub IUnknown, ma atrybut [oleautomation], a wszystkie jego wpisy VTBL są zgodne z usługą Automation. W przypadku platform 32-bitowych konwencję wywoływania dla wszystkich metod w interfejsie musi być STDCALL. W przypadku systemów 16-bitowych wszystkie metody muszą mieć konwencję wywoływania listy CDECL.

Każdy dispinterface jest niejawnie zgodny z automatyzacją. W związku z tym nie należy używać atrybutu [oleautomation] na dispinterface.

Atrybut [oleautomation] nie jest dostępny podczas kompilowania przy użyciu przełącznika /osf kompilatora MIDL.

Flagi

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

Zobacz także

Plik definicji interfejsu (IDL)

Generowanie biblioteki typów za pomocą języka MIDL

Przykład pliku ODL

Składnia pliku ODL

/Osf

Uuid