移植性マクロ
RPC ツールは、生成されたスタブ ファイルとヘッダー ファイル内のデータ型と関数戻り値の型を各プラットフォームに固有の定義に関連付けることで、モデル、呼び出し、名前付け規則に依存しません。 これらのマクロ定義により、 __far の指定を必要とするデータ型と関数は、遠くのオブジェクトとして指定されます。
次の図は、MIDL コンパイラが RPC コンポーネント間の関数呼び出しに適用するマクロ定義を示しています。
RPC マクロは次のように定義されます。
定義 | 説明 |
---|---|
__RPC_API | スタブによってユーザー アプリケーションに対して行われた呼び出しに適用されます。 どちらの関数も同じ実行可能プログラム内にあります。 |
__RPC_FAR | ポインターの標準マクロ定義に適用されます。 このマクロ定義は、ユーザーが指定したすべての関数の署名の一部として表示されます。 |
__RPC_STUB | ランタイム ライブラリからスタブへの呼び出しに適用されます。 これらの呼び出しはプライベートと見なすことができます。 |
__RPC_USER | ランタイム ライブラリによってユーザー アプリケーションに対して行われた呼び出しに適用されます。 これらは、DLL とアプリケーションの境界を越えています。 |
RPC_ENTRY | アプリケーションまたはスタブによってランタイム ライブラリに対して行われた呼び出しに適用されます。 このマクロ定義は、すべての RPC ランタイム関数に適用されます。 |
Microsoft RPC ランタイム ライブラリ、スタブ、およびサポート ルーチンと正しくリンクするには、一部のユーザー指定関数も関数定義にこれらのマクロを含める必要があります。 メモリ管理 、 ユーザー定義バインド ハンドル、および transmit_as 属性に関連付けられている関数を定義する場合は、マクロ __RPC_API を使用し、コンテキスト ハンドルに関連付けられているコンテキスト ランダウン ルーチンを定義するときにマクロ __RPC_USER を使用します。 関数を次のように指定します。
-
__RPC_USER midl_user_allocate(...)
-
__RPC_USER midl_user_free(...)
-
__RPC_USER handletype_bind(...)
-
__RPC_USER handletype_unbind(...)
-
__RPC_USER 型_to_local
-
型__RPC_USER_from_local
-
__RPC_USER type_to_xmit(...)
-
__RPC_USER 型_from_xmit(...)
-
__RPC_USER 型_free_local
-
__RPC_USER 型_free_inst(...)
-
__RPC_USER 型_free_xmit(...)
-
__RPC_USER context_rundown(...)
Note
これらの関数内のすべてのポインター パラメーターは、マクロ __RPC_FARを使用して指定する必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|