インターフェイスの開発
RPC インターフェイスは、サーバー プログラムが実装するリモート関数を記述します。 インターフェイスは、クライアントがサーバーが提供するリモート プロシージャを呼び出すときに、クライアントとサーバーが同じ規則を使用して通信することを保証します。 インターフェイスは、インターフェイス名、一部の属性、省略可能な型または定数の定義、およびプロシージャ宣言のセットで構成されます。 各プロシージャ宣言には、プロシージャ名、戻り値の型、およびパラメーター リストが含まれている必要があります。
インターフェイスは、Microsoft インターフェイス定義言語 (MIDL) で定義されます。 C または C++ に慣れている場合、MIDL インターフェイス定義はかなり簡単に見えます。 MIDL は、さまざまな点で C と C++ に似ています。
RPC アプリケーションを開発するときに、テキスト エディターを使用してインターフェイスを定義し、拡張子が .idl のテキスト ファイルに格納します。 詳細については、「 IDL ファイルと ACF ファイル」を参照してください。 MIDL コンパイラは、プログラムがクライアントとサーバーのソース ファイルに含めるヘッダー ファイルを生成します。 MIDL コンパイラでは、2 つの C ソース ファイルも生成されます。 これらの 1 つをコンパイルしてクライアント プログラムにリンクし、もう 1 つをサーバー プログラムにリンクします。 これら 2 つの C ソース ファイルは、クライアントスタブとサーバー スタブです。 クライアントスタブとサーバースタブの概要については、「 RPC のしくみ」を参照してください。 MIDL コンパイラの概要については、「 MIDL ファイルのコンパイル」を参照してください。
既定では、クライアントスタブとサーバースタブの名前は同じであり、クライアントがサーバースタブとリンクしている場合、またはその逆の場合に問題が発生する可能性があります。 MIDL /prefix オプションを使用すると、この一般的なエラーが発生しないようにします。
次の図は、インターフェイスを作成するプロセスを示しています。
MIDL コンパイラへの入力用にアプリケーション構成ファイル (ACF) も指定する必要がある場合もあります。 アプリケーション構成ファイルの詳細については、「 IDL ファイルと ACF ファイル」を参照してください。
MIDL コンパイラに加えて、通常は Uuidgen ユーティリティを使用してユニバーサル一意識別子 (UUID、GUID という用語と交換可能) を生成する必要があります。 このセクションでは、これらのツールの両方について、次のトピックに分けて説明します。