次の方法で共有


インターフェイスの登録

サーバー・プログラムがサポートするインターフェースを登録すると、クライアント・プログラムからのリモート・プロシージャー呼び出しを適切なサーバー・ルーチンにディスパッチすることができます。 サーバー プログラムは RpcServerRegisterIf を呼び出してインターフェイスを登録します。 次のコード フラグメントは、その使用方法を示しています。

RPC_STATUS status;
status = RpcServerRegisterIf(MyInterface_v1_0_s_ifspec, NULL, NULL);

RpcServerRegisterIf 関数の最初のパラメーターは、サーバーのインターフェイス (またはインターフェイス) を定義する IDL ファイルから MIDL コンパイラによって生成される構造です。 2 番目と 3 番目のパラメーターは、それぞれ UUID とエントリ ポイント ベクターです。 この例では、 NULL に設定されています。 多くの場合、サーバー プログラムはこれらのパラメーター値を NULL に設定します。 サーバー プログラムは、インターフェイス内で同じプロシージャの複数の実装を提供するときに、2 番目と 3 番目のパラメーターを使用します。 詳細については、「 エントリ ポイント ベクトル」を参照してください。

サーバー プログラムでは、 RpcServerRegisterIfEx を使用してインターフェイスを登録することもできます。 この関数を使用する利点の 1 つは、セキュリティ コールバック関数を設定する機能をアプリケーションに提供することです。 インターフェイスをセキュリティで保護するには、セキュリティ コールバック関数を使用することをお勧めします。

Note

MIDL では、クライアント用とサーバー用の 2 つの非常に似た構造が生成されます。 RpcServerRegisterIf 関数に渡される構造体は、MIDL で生成される構造体のサーバー バージョンです。