次の方法で共有


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

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

解説

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

Description
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 進数 96 ビット符号なしバイナリ整数を、10 の可変累乗でスケーリングします。 (座標のように) 数値のサイズとスケールを提供する 10 進データ型。

 

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

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

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

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

すべての ディスパッチインターフェイス は、暗黙的にオートメーション互換です。 したがって、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