次の方法で共有


MULTI_QI構造体 (objidlbase.h)

複数のインターフェイスのクエリ内のインターフェイスを表します。

構文

typedef struct tagMULTI_QI {
  const IID *pIID;
  IUnknown  *pItf;
  HRESULT   hr;
} MULTI_QI;

メンバーズ

pIID

インターフェイス識別子へのポインター。

pItf

pIIDで要求されたインターフェイスへのポインター。 このメンバーは、入力時に NULL する必要があります。

hr

QueryInterface の戻り値、要求されたインターフェイスを検索するための呼び出しです。 一般的な戻り値には、S_OKとE_NOINTERFACEが含まれます。 このメンバーは、入力時に 0 である必要があります。

備考

ネットワーク パフォーマンスを最適化するために、ほとんどのリモート アクティブ化関数は、入力として単一の IID ではなく、MULTI_QI 構造体の配列を受け取り、ローカル アクティブ化関数と同様に、オブジェクトの要求されたインターフェイスへの単一のポインターを出力として受け取ります。 これにより、インターフェイスへのポインターのセットを、サーバーへの 1 回のラウンド トリップで同じオブジェクトから返すことができます。 ネットワーク シナリオでは、オブジェクトの構築時に複数のインターフェイスを要求すると、一意のインターフェイスに対する QueryInterface の呼び出しを何度も使用することで、時間を節約できます。各インターフェイスでは、サーバーへのラウンド トリップが必要になります。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
ヘッダー objidlbase.h (Objidl.h を含む)

関連項目

CoCreateInstanceEx する

CoGetInstanceFromFile

CoGetInstanceFromIStorage

IMultiQI