次の方法で共有


CoGetStdMarshalEx 関数 (combaseapi.h)

軽量のクライアント側ハンドラーで使用する集約された標準マーシャラーを作成します。

構文

HRESULT CoGetStdMarshalEx(
  [in]  LPUNKNOWN pUnkOuter,
  [in]  DWORD     smexflags,
  [out] LPUNKNOWN *ppUnkInner
);

パラメーター

[in] pUnkOuter

制御する IUnknown へのポインター。

[in] smexflags

集約された標準マーシャラーがクライアント側かサーバー側かを示す 2 つの値のいずれか。 これらのフラグは STDMSHLFLAGS 列挙で定義されます。

意味
SMEXF_SERVER
0x01
サーバー側の集約された標準マーシャラーを示します。
SMEXF_HANDLER
0x0
クライアント側 (ハンドラー) 集計された標準マーシャラーを示します。

[out] ppUnkInner

正常に戻ったら、新しく作成された集約された標準マーシャラーの IUnknown インターフェイスへのポインターのアドレス。 エラーが発生した場合、この値は NULL です

戻り値

この関数は、S_OKを返します。

解説

サーバーは、フラグ SMEXF_SERVERを渡して CoGetStdMarshalEx を呼び出します。 これにより、サーバー側の標準マーシャラー (スタブ マネージャーと呼ばれます) が作成されます。 ハンドラーは、フラグ SMEXF_HANDLERを渡して CoGetStdMarshalEx を呼び出します。 これにより、クライアント側の標準マーシャラー (プロキシ マネージャーと呼ばれます) が作成されます。 この関数を呼び出すとき、ハンドラーは、ハンドラーの作成時にハンドラーに渡された元の制御不明を渡す必要があることに注意してください。 これは、不明な制御を実装したシステムになります。 正しい IUnknown を渡さなかった場合、エラーが返されます。 成功した場合、返される ppUnkInner は内部オブジェクトの制御不明です。 サーバーとハンドラーは、このポインターを保持する必要があり、それを使用して IMarshal インターフェイスの IUnknown::QueryInterface を呼び出す場合があります。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー combaseapi.h (Objbase.h を含む)
Library Ole32.lib
[DLL] Ole32.dll

関連項目

IMarshal

IStdMarshalInfo

ライトウェイト Client-Side ハンドラー