次の方法で共有


IClientSecurity::CopyProxy メソッド (objidl.h)

指定したインターフェイスのプロキシのプライベート コピーを作成します。

構文

HRESULT CopyProxy(
  [in]  IUnknown *pProxy,
  [out] IUnknown **ppCopy
);

パラメーター

[in] pProxy

プロキシをコピーするインターフェイスへのポインター。 このパラメーターを NULL にすることはできません。

[out] ppCopy

プロキシのコピーを受け取る IUnknown インターフェイス ポインターへのポインター。 このパラメーターを NULL にすることはできません。

戻り値

このメソッドは、次の値を返すことができます。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_INVALIDARG
1 つ以上の引数が無効です。

注釈

CopyProxy は、指定されたインターフェイスのプロキシのプライベート コピーを作成するために、クライアントによって呼び出されます。 プロキシ コピーには、認証情報の既定値があります。 その認証情報は、元のプロキシの他のクライアントに影響を与えることなく 、IClientSecurity::SetBlanket の呼び出しによって変更できます。 コピーには 1 つの参照があり、 CopyProxy の呼び出し元はプロキシ コピーが解放されていることを確認する必要があります。

IUnknownIClientSecurity などのローカル インターフェイスはコピーできません。 CopyProxy を使用してプロキシ マネージャーを複製することはできません。

同じプロキシのコピーには、 QueryInterface に関して特別な関係があります。 リモート オブジェクトの IA インターフェイスのプロキシ a を指定すると、b と呼ばれる のコピーが作成されるとします。 この場合、IID_IAの b プロキシから QueryInterface を 呼び出すと、b の IA インターフェイスは取得されず、元のプロキシ上のインターフェイスは取得されません。

だれでも SetBlanket を使用してプロキシのクエリを実行し、セキュリティを変更できることに注意してください。 ただし、プロキシのコピーを作成した場合、そのコピーを渡さない限り、誰もそのコピーを取得できません。 コピーを持っているユーザーのみがセキュリティを設定できます。

ヘルパー関数 CoCopyProxy は、IClientSecurity へのポインターの QueryInterface 呼び出し、IClientSecurity ポインターを使用した CopyProxy の呼び出し、および IClientSecurity ポインターのリリースをカプセル化します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h (ObjIdl.h を含む)

こちらもご覧ください

CoCopyProxy

IClientSecurity