oleautomation 屬性

oleautomation 屬性表示該介面與自動化相容。

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

參數

弦-uuid

指定由 Uuidgen 工具產生的 UUID 字串。

介面屬性列表

指定適用於整個介面的其他屬性。

介面名稱

指定介面的名稱。

基底介面

指定自動化介面的名稱,該衍生介面繼承成員函數、狀態碼及介面屬性。 所有自動化介面皆源自 IUnknownIDispatch

備註

[ oleautomation] 介面成員所指定的參數與回傳類型必須是自動化相容的,如下表所示。

類型 說明
布爾值 資料項目的值可以是VARIANT_TRUE或VARIANT_FALSE。 大小對應於VARIANT_BOOL。
不帶正負號的字元 8位元無符號資料項目。
雙倍 64 位元 IEEE 浮點數。
浮動 32位元的 IEEE 浮點數。
int 有符號整數,其大小依系統而異。 在 32 位元平台上,MIDL 將 整數 視為 32 位元有符號整數。
32位元有號整數。
簡短 16 位帶正負號的整數。
英國廣播電台 長度前綴字串,詳見自動化主題 BSTR。
貨幣 8 位元組,固定浮點數。
日期 自1899年12月30日起,64位元浮點分數天數。
SCODE 對於16位元系統——內建的錯誤類型對應於VT_ERROR。
Typedef enummyenum 有符號整數,其大小依系統而異。
介面 IDispatch * 指向 IDispatch 介面的指標(VT_DISPATCH)。
介面 IUnknown * 指標指向非源自 IDispatch (VT_UNKNOWN) 的介面。 (任何 OLE 介面都可以用其 IUnknown 介面來表示。)
dispinterface類型名稱 * 指向由 IDispatch (VT_DISPATCH) 衍生的介面指標。
同級類型名稱 * 指向共類名稱(VT_UNKNOWN)。
[oleautomation] 介面Typename * 指向源自 IUnknown 的介面指標。
SAFEARRAY(類型名稱 TypeName 是上述任一種類型。 這類的陣列。
類型名稱 * TypeName 是上述任一種類型。 指向一個類型的指標。
十進位 96位元無符號二進位整數,縮放為10的可變冪次元。 一種十進位資料型態,提供數字的大小與刻度(如座標)。

 

若參數的型別是 Automation 相容型別、指向 Automation 相容型別的指標,或是相容型態的 SAFEARRAY,則該參數與 Automation 相容。

若一個回傳類型是 HRESULT、SCODE 或 void,則與 Automation 相容。 然而,MIDL 要求介面方法回傳 HRESULT 或 SCODE。 回傳 void 會產生編譯器錯誤。

若成員的回傳類型及所有參數皆相容於自動化,則該成員即與自動化相容。

若介面源自 IDispatchIUnknown,且擁有 [oleautomation] 屬性,且所有 VTBL 條目皆相容 Automation,則該介面與 Automation 相容。 對於 32 位元平台,介面中所有方法的呼叫慣例必須是 STDCALL。 對於 16 位元系統,所有方法都必須具備 CDECL 呼叫慣例。

每個 介面 都隱含相容於自動化。 因此你不應該在 dispinterface 上使用 [oleautomation] 屬性。

使用 MIDL 編譯器 /osf 交換器時,[oleautomation] 屬性無法使用。

旗標

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

另請參閱

介面定義(IDL)檔案

使用 MIDL 產生型別函式庫

ODL 檔案範例

ODL 檔案語法

/osf

UUID