IID_PPV_ARGS マクロ (combaseapi.h)
インターフェイス ポインターを取得するために使用され、使用されるインターフェイス ポインターの型に基づいて、要求されたインターフェイスの IID 値が自動的に指定されます。 これにより、コンパイル時に渡される値の型を確認することで、一般的なコーディング エラーを回避できます。
構文
void IID_PPV_ARGS(
ppType
);
パラメーター
ppType
要求されるオブジェクトの型を決定するために 型 T を使用するインターフェイス ポインターのアドレス。 マクロは、このパラメーターを介してインターフェイス ポインターを返します。
戻り値
なし
解説
インターフェイス ポインター (特に QueryInterface と CoCreateInstance) を取得するメソッドの一般的な構文には、次の 2 つのパラメーターが含まれています。
- 通常は REFIID 型の [in] パラメーターで、取得するインターフェイスの IID を指定します。
- インターフェイス ポインターを受け取る [out] パラメーター (通常は void** 型)。
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 |