次の方法で共有


async_uuid 属性

[async_uuid] インターフェイス属性は、COM インターフェイスの同期バージョンと非同期バージョンの両方を定義するように MIDL コンパイラに指示します。

[ 
    object, 
    uuid(string-uuid1), 
    async_uuid(string-uuid2)[ [, interface-attribute-list] 
]
interface interface-name : base-interface
{
    interface-definition
}

パラメーター

string-uuid1

Uuidgen ユーティリティによって生成される UUID 文字列。インターフェイスの同期バージョンを識別します。

string-uuid2

Uuidgen ユーティリティによって生成される UUID 文字列。これは、インターフェイスの非同期バージョンを識別します。

interface-attribute-list

インターフェイス全体に適用されるその他の属性。 COM インターフェイスで [version] 属性を使用することはできません。

interface-name

インターフェイスの名前。

base-interface

このインターフェイスの派生元のインターフェイス。 基本インターフェイスは 、IUnknown または IUnknown から直接または間接的に派生する非同期インターフェイス である必要があります。

interface-definition

インターフェイスの定義を形成する IDL ステートメントを指定します。

解説

この属性を使用するには、Windows 2000 以降のバージョンの Windows が必要です。

COM インターフェイス (つまり、[object] 属性を持つインターフェイス) に [async_uuid] 属性を適用すると、MIDL コンパイラは、従来の同期バージョンに加えて、インターフェイスの非同期定義を生成します。 非同期インターフェイスの名前は同期インターフェイスと同じですが、"Async" プレフィックスが付きます。 インターフェイス識別子 (IID) は 、[async_uuid] 属性のパラメーターとして指定された UUID になります。

非同期インターフェイスの場合、MIDL は各メソッドを個別の begin メソッドと finish メソッドに分割します。 begin メソッドには、"Begin_" プレフィックスを持つ同期メソッド名があり、同期メソッドのすべての [in] パラメーターが含まれています。 finish メソッドには、"Finish_" プレフィックスを持つ同期メソッドの名前があり、同期メソッドのすべての [out] パラメーターが含まれています。 同期メソッドに [in, out] パラメーターがある場合、これらは beginfinish の両方の非同期メソッドに含まれます。

非同期インターフェイス メソッドに [call_as] 属性がある場合、MIDL は begin メソッドと finish メソッドの宣言を生成します。 両方のメソッドを実装する必要があります。

各非同期インターフェイスは同期インターフェイス上の修飾子であり、そのため、個別の継承グラフはありません。 つまり、( IUnknown 以外の) 非同期インターフェイスから同期インターフェイスを定義することはできません。 同期インターフェイスは非同期インターフェイスから継承することもできません。 いずれかの方法を試みると、MIDL コンパイラによってエラー メッセージが発行されます。

[
    object, 
    uuid(0c733a30-2a1c-11ce-ade5-00aa0044773d),
    async_uuid(1c733a30-2a1c-11ce-ade5-00aa0044773d),
    pointer_default(unique)
]
interface IMyInterface : IUnknown
{
    /* Interface definition goes here*/
}

関連項目

COM インターフェイスの定義

インターフェイス定義 (IDL) ファイル

call_as

iid_is

インチ

地元の

オブジェクト

バージョン