IID_PPV_ARGS マクロ (combaseapi.h)

インターフェイス ポインターを取得するために使用され、使用されるインターフェイス ポインターの型に基づいて、要求されたインターフェイスの IID 値が自動的に指定されます。 これにより、コンパイル時に渡される値の型を確認することで、一般的なコーディング エラーを回避できます。

構文

void IID_PPV_ARGS(
   ppType
);

パラメーター

ppType

要求されるオブジェクトの型を決定するために 型 T を使用するインターフェイス ポインターのアドレス。 マクロは、このパラメーターを介してインターフェイス ポインターを返します。

戻り値

なし

解説

インターフェイス ポインター (特に QueryInterfaceCoCreateInstance) を取得するメソッドの一般的な構文には、次の 2 つのパラメーターが含まれています。

  • 通常は REFIID 型の [in] パラメーターで、取得するインターフェイスの IID を指定します。
  • インターフェイス ポインターを受け取る [out] パラメーター (通常は void** 型)。
このマクロは、インターフェイス ポインターの種類に基づいて IID を計算します。これにより、IID とインターフェイス ポインターの型が一致しないコーディング エラーが回避されます。 Windows 開発者は、個別の IID パラメーターとインターフェイス ポインター パラメーターを必要とする任意のメソッドで常にこのマクロを使用する必要があります。

Windows 7 はパブリック ヘッダーにこのマクロを初めて含めますが、プロジェクト ヘッダーまたはソース コードで手動で定義することで、古いシステムで使用できます。

次の例では、IPropertyStore を使用して IID_PPV_ARGS を使用してメモリ プロパティ ストア オブジェクトを作成する方法を示します。

IPropertyStore *pPropertyStore;

CoCreateInstance(CLSID_PropertyStore, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pPropertyStore));

要件

要件
サポートされている最小のクライアント Windows 7 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2008 R2 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー combaseapi.h