oleautomation-attribut

Oleautomation-attributet anger att ett gränssnitt är kompatibelt med Automation.

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

Parameters

string-uuid

Anger en UUID-sträng som genereras av Uuidgen-verktyget.

interface-attribute-list

Anger andra attribut som gäller för gränssnittet som helhet.

gränssnittsnamn

Anger namnet på gränssnittet.

base-interface

Anger namnet på ett Automation-gränssnitt som det här härledda gränssnittet ärver medlemsfunktioner, statuskoder och gränssnittsattribut. Alla Automation-gränssnitt härleds från IUnknown eller IDispatch.

Anmärkningar

Parametrarna och returtyperna som anges för medlemmarna i ett [oleautomation] -gränssnitt måste vara Automation-kompatibla, enligt följande tabell.

Type Beskrivning
boolean Dataobjekt som kan ha värdet VARIANT_TRUE eller VARIANT_FALSE. Storleken motsvarar VARIANT_BOOL.
osignerat tecken 8-bitars osignerat dataobjekt.
dubbel 64-bitars IEEE-flyttalsnummer.
float 32-bitars IEEE-flyttalsnummer.
int Signerat heltal, vars storlek är systemberoende. På 32-bitarsplattformar behandlar MIDL int som ett 32-bitars signerat heltal.
lång 32-bitars signerat heltal.
kort 16-bitars signerat heltal.
BSTR Längdprefixsträng, enligt beskrivningen i automationsavsnittet BSTR.
VALUTA 8 byte, fast flyttalsnummer.
DATUM 64-bitars, flyttalsfraktionellt antal dagar sedan den 30 december 1899.
SCODE För 16-bitarssystem – inbyggd feltyp som motsvarar VT_ERROR.
Typedef enummyenum Signerat heltal, vars storlek är systemberoende.
Gränssnitts-IDispatch * Pekare till IDispatch-gränssnittet (VT_DISPATCH).
Gränssnitts-IUnknown * Pekare till ett gränssnitt som inte härleds från IDispatch (VT_UNKNOWN). (Alla OLE-gränssnitt kan representeras av dess IUnknown-gränssnitt .)
dispinterfaceTypename * Pekare till ett gränssnitt som härletts från IDispatch (VT_DISPATCH).
CoclassTypename * Pekare till ett coclass-namn (VT_UNKNOWN).
[oleautomation] gränssnittTypename * Pekare till ett gränssnitt som härleds från IUnknown.
SAFEARRAY(TypeName) TypeName är någon av ovanstående typer. Matris med dessa typer.
Typename* TypeName är någon av ovanstående typer. Pekare till en typ.
Decimal 96-bitars osignerat binärt heltal skalas med en variabel effekt på 10. En decimaldatatyp som ger en storlek och en skala för ett tal (som i koordinater).

 

En parameter är kompatibel med Automation om dess typ är en Automation-kompatibel typ, en pekare till en Automation-kompatibel typ eller en SAFEARRAY av en Automation-kompatibel typ.

En returtyp är kompatibel med Automation om dess typ är en HRESULT, SCODE eller void. MIDL kräver dock att gränssnittsmetoderna returnerar antingen HRESULT eller SCODE. Returnerande tomrum genererar ett kompilatorfel.

En medlem är kompatibel med Automation om dess returtyp och alla dess parametrar är Automation-kompatibla.

Ett gränssnitt är kompatibelt med Automation om det härleds från IDispatch eller IUnknown, det har attributet [oleautomation] och alla dess VTBL-poster är Automation-kompatibla. För 32-bitarsplattformar måste anropskonventionen för alla metoder i gränssnittet vara STDCALL. För 16-bitarssystem måste alla metoder ha CDECL-anropskonventionen.

Varje dispinterface är implicit Automation-kompatibelt. Därför bör du inte använda attributet [oleautomation]dispinterface.

Attributet [oleautomation] är inte tillgängligt när du kompilerar med midl-kompilatorn /osf-växeln .

Flaggor

TYPEFLAG_FOLEAUTOMATION

Exempel

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

Se även

IDL-fil (Interface Definition)

Generera ett typbibliotek med MIDL

ODL-filexempel

ODL-filsyntax

/Fos

Uuid