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.
}
関連項目