Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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] på 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