oleautomation-kenmerk

Het oleautomation-kenmerk geeft aan dat een interface compatibel is met Automation.

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

Parameterwaarden

tekenreeks-uuid

Hiermee geeft u een UUID-tekenreeks die wordt gegenereerd door het hulpprogramma Uuidgen.

interface-attribute-list

Hiermee geeft u andere kenmerken op die van toepassing zijn op de interface als geheel.

interfacenaam

Hiermee geeft u de naam van de interface op.

basisinterface

Hiermee geeft u de naam van een Automation-interface waaruit deze afgeleide interface lidfuncties, statuscodes en interfacekenmerken over neemt. Alle Automation-interfaces zijn afgeleid van IUnknown of IDispatch.

Opmerkingen

De parameters en retourtypen die zijn opgegeven voor de leden van een [oleautomation] -interface, moeten compatibel zijn met Automation, zoals wordt vermeld in de volgende tabel.

Typ Beschrijving
Boolean Gegevensitem met de waarde VARIANT_TRUE of VARIANT_FALSE. De grootte komt overeen met VARIANT_BOOL.
niet-ondertekende tekens 8-bits niet-ondertekende gegevensitem.
dubbele 64-bits IEEE-drijvendekommagetal.
float 32-bits IEEE-drijvendekommagetal.
int Ondertekend geheel getal, waarvan de grootte afhankelijk is van het systeem. Op 32-bits platforms behandelt MIDL int als een 32-bits geheel getal dat is ondertekend.
lange 32-bits ondertekend geheel getal.
kort 16-bits ondertekend geheel getal.
BSTR Tekenreeks met lengtevoorvoegsel, zoals beschreven in het Automation-onderwerp BSTR.
VALUTA- 8-bytes, vast drijvendekommagetal.
DATUM 64-bits, drijvende komma fractioneel aantal dagen sinds 30 december 1899.
SCODE Voor 16-bits systemen, ingebouwd fouttype dat overeenkomt met VT_ERROR.
Typedef enummyenum Ondertekend geheel getal, waarvan de grootte afhankelijk is van het systeem.
Interface IDispatch * Aanwijzer naar de IDispatch-interface (VT_DISPATCH).
Interface IUnknown * Wijs een interface aan die niet is afgeleid van IDispatch (VT_UNKNOWN). (Elke OLE-interface kan worden vertegenwoordigd door de IUnknown-interface .)
dispinterfaceTypename * Aanwijzer naar een interface die is afgeleid van IDispatch (VT_DISPATCH).
CoclassTypename * Aanwijzer naar een coklassenaam (VT_UNKNOWN).
[oleautomation] interfaceTypename * Wijs een interface aan die is afgeleid van IUnknown.
SAFEARRAY(TypeName) TypeName is een van de bovenstaande typen. Matrix van deze typen.
Typename* TypeName is een van de bovenstaande typen. Aanwijzer naar een type.
Decimaal 96-bits niet-ondertekend binair geheel getal geschaald door een variabele macht van 10. Een decimaal gegevenstype dat een grootte en een schaal voor een getal biedt (zoals in coƶrdinaten).

 

Een parameter is compatibel met Automation als het type een type is dat compatibel is met Automation, een aanwijzer naar een type dat compatibel is met Automation of een SAFEARRAY van een type dat compatibel is met Automation.

Een retourtype is compatibel met Automation als het type een HRESULT, SCODE of void is. VOOR MIDL is echter vereist dat interfacemethoden HRESULT of SCODE retourneren. Retourneert void genereert een compilerfout.

Een lid is compatibel met Automation als het retourtype en alle parameters compatibel zijn met Automation.

Een interface is compatibel met Automation als deze is afgeleid van IDispatch of IUnknown, het kenmerk [oleautomation] heeft en alle VTBL-vermeldingen zijn compatibel met Automation. Voor 32-bits platforms moet de aanroepconventie voor alle methoden in de interface STDCALL zijn. Voor 16-bits systemen moeten alle methoden de CDECL-aanroepconventie hebben.

Elke dispinterface is impliciet automation-compatibel. Daarom moet u het kenmerk [oleautomation] niet gebruiken voor dispinterface.

Het kenmerk [oleautomation] is niet beschikbaar wanneer u compileert met behulp van de 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.
}

Zie ook

IdL-bestand (Interface Definition)

Een typebibliotheek genereren met MIDL

VOORBEELD VAN ODL-bestand

ODL-bestandssyntaxis

/Osf

Uuid