oleautomation – atribut

Atribut oleautomation označuje, že rozhraní je kompatibilní se službou Automation.

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

Parametry

string-uuid

Určuje řetězec UUID vygenerovaný nástrojem Uuidgen.

interface-attribute-list

Určuje další atributy, které se vztahují na rozhraní jako celek.

název rozhraní

Určuje název rozhraní.

základní rozhraní

Určuje název rozhraní Automation, ze kterého toto odvozené rozhraní dědí členské funkce, stavové kódy a atributy rozhraní. Všechna rozhraní automation jsou odvozena od IUnknown nebo IDispatch.

Poznámky

Parametry a návratové typy zadané pro členy rozhraní [oleautomation] musí být kompatibilní se službou Automation, jak je uvedeno v následující tabulce.

Typ Description
boolean Datová položka, která může mít hodnotu VARIANT_TRUE nebo VARIANT_FALSE. Velikost odpovídá VARIANT_BOOL.
unsigned char bez znaménka 8bitová nepodepsaná datová položka
dvojitý 64bitové číslo IEEE s plovoucí desetinou čárkou.
float 32bitové číslo IEEE s plovoucí desetinou čárkou.
int Celé číslo, jehož velikost je závislá na systému. Na 32bitových platformách zachází MIDL s int jako s 32bitovým celým číslem se signepsem.
dlouhý 32bitové celé číslo se signedm.
krátké 16bitové celé číslo se signedm.
BSTR Řetězec s předponou délky, jak je popsáno v tématu Automatizace BSTR.
MĚNA 8 bajtů, pevné číslo s plovoucí desetinou čárkou.
DATE (Datum) 64bitový desetinný desetinný počet dní od 30. prosince 1899.
SCODE Pro 16bitové systémy integrovaný typ chyby, který odpovídá VT_ERROR.
Typedef – výčetmyenum Celé číslo, jehož velikost je závislá na systému.
Rozhraní IDispatch * Ukazatel na rozhraní IDispatch (VT_DISPATCH).
Rozhraní IUnknown * Ukazatel na rozhraní, které není odvozeno z IDispatch (VT_UNKNOWN). (Jakékoli rozhraní OLE může být reprezentováno jeho rozhraníM IUnknown .)
dispinterfaceTypename * Ukazatel na rozhraní odvozené z IDispatch (VT_DISPATCH).
Název typu třídy coclass* Ukazatel na název třídy coclass (VT_UNKNOWN).
[oleautomation] interfaceTypename * Ukazatel na rozhraní, které je odvozeno od IUnknown.
SAFEARRAY(TypeName) TypeName je některý z výše uvedených typů. Pole těchto typů
Typename* TypeName je některý z výše uvedených typů. Ukazatel na typ
Decimal 96bitové binární celé číslo bez znaménka škálované proměnným výkonem 10. Datový typ desítkového čísla, který poskytuje velikost a měřítko čísla (stejně jako v souřadnicích).

 

Parametr je kompatibilní se službou Automation, pokud je jeho typ kompatibilní s automatizací, ukazatel na typ kompatibilní se službou Automation nebo SAFEARRAY typu kompatibilního se službou Automation.

Návratový typ je kompatibilní se službou Automation, pokud je jeho typ HRESULT, SCODE nebo void. MIDL však vyžaduje, aby metody rozhraní vrátily hodnotu HRESULT nebo SCODE. Vrácení void vygeneruje chybu kompilátoru.

Člen je kompatibilní se službou Automation, pokud je jeho návratový typ a všechny jeho parametry kompatibilní se službou Automation.

Rozhraní je kompatibilní se službou Automation, pokud je odvozeno z IDispatch nebo IUnknown, má atribut [oleautomation] a všechny jeho položky VTBL jsou kompatibilní se službou Automation. Pro 32bitové platformy musí být konvence volání pro všechny metody v rozhraní STDCALL. U 16bitových systémů musí mít všechny metody konvenci volání CDECL.

Každý dispinterface je implicitně kompatibilní se službou Automation. Proto byste neměli používat atribut [oleautomation] na dispinterface.

Atribut [oleautomation] není k dispozici při kompilaci pomocí přepínače MIDL compiler /osf .

Flags

TYPEFLAG_FOLEAUTOMATION

Příklady

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

Viz také

Soubor definice rozhraní (IDL)

Generování knihovny typů pomocí MIDL

Příklad souboru ODL

Syntaxe souboru ODL

/Osf

Uuid