oleautomation 属性

oleautomation 属性は、インターフェイスが Automation と互換性があることを示します。

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

パラメーター

string-uuid

Uuidgen ユーティリティによって生成される UUID 文字列を指定します。

interface-attribute-list

インターフェイス全体に適用される他の属性を指定します。

interface-name

インターフェイスの名前を指定します。

base-interface

この派生インターフェイスがメンバー関数、状態コード、およびインターフェイス属性を継承するオートメーション インターフェイスの名前を指定します。 すべてのオートメーション インターフェイスは、 IUnknown または IDispatch から派生します。

解説

次の表に示すように、[ oleautomation] インターフェイスのメンバーに指定されたパラメーターと戻り値の型は、Automation 互換である必要があります。

Type 説明
boolean 値をVARIANT_TRUEまたはVARIANT_FALSEできるデータ項目。 サイズはVARIANT_BOOLに対応します。
unsigned char 8 ビット符号なしデータ項目。
double 64 ビット IEEE 浮動小数点数。
float 32 ビット IEEE 浮動小数点数。
int システムに依存するサイズの符号付き整数。 32 ビット プラットフォームでは、MIDL は int を 32 ビット符号付き整数として扱います。
long 32 ビット符号付き整数
short 16 ビット符号付き整数。
BSTR Automation トピック BSTR の説明に従って、長さのプレフィックス付き文字列。
CURRENCY 8 バイトの固定浮動小数点数。
DATE 1899 年 12 月 30 日以降の 64 ビット浮動小数点小数部日数。
SCODE VT_ERRORに対応する 16 ビット システムの組み込みエラーの種類。
Typedef 列挙型Â myenum システムに依存するサイズの符号付き整数。
インターフェイス IDispatch * IDispatch インターフェイスへのポインター (VT_DISPATCH)。
インターフェイス IUnknown * IDispatch (VT_UNKNOWN) から派生しないインターフェイスへのポインター。 (すべての OLE インターフェイスは、 その IUnknown インターフェイスで表すことができます)。
ディスパッチÂ Typename * IDispatch (VT_DISPATCH) から派生したインターフェイスへのポインター。
コクラスÂ Typename * コクラス名へのポインター (VT_UNKNOWN)。
[oleautomation] インターフェイスÂ Typename * IUnknown から派生するインターフェイスへのポインター。
SAFEARRAY(TypeName) TypeName は、上記のいずれかの型です。 これらの型の配列。
TypeName * TypeName は、上記のいずれかの型です。 型へのポインター。
10 進数 10 の可変累乗でスケーリングされた 96 ビット符号なし 2 進整数。 (座標のように) 数値のサイズと小数点以下桁数を提供する 10 進データ型。

 

パラメーターの型がオートメーション互換型、オートメーション互換型へのポインター、または Automation 互換型の SAFEARRAY である場合、パラメーターは Automation と互換性があります。

戻り値の型が HRESULT、SCODE、または void の場合、戻り値の型は Automation と互換性があります。 ただし、MIDL では、インターフェイス メソッドが HRESULT または SCODE を返す必要があります。 void を返すと、コンパイラ エラーが生成されます。

戻り値の型とそのすべてのパラメーターが Automation と互換性がある場合、メンバーは Automation と互換性があります。

インターフェイスが IDispatch または IUnknown から派生し、[ oleautomation] 属性を持ち、その VTBL エントリがすべて Automation と互換性がある場合、インターフェイスは Automation と互換性があります。 32 ビット プラットフォームの場合、インターフェイス内のすべてのメソッドの呼び出し規則は STDCALL である必要があります。 16 ビット システムの場合、すべてのメソッドに CDECL 呼び出し規則が必要です。

すべての ディスパッチインターフェイス は、暗黙的に Automation と互換性があります。 したがって、dispinterface では [oleautomation] 属性を使用しないでください。

MIDL コンパイラ /osf スイッチを使用してコンパイルする場合、[oleautomation] 属性は使用できません。

Flags

TYPEFLAG_FOLEAUTOMATION

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