Win32 API 日本語リファレンス
ホームSystem.Com › IRpcOptions

IRpcOptions

COM
IID00000144-0000-0000-c000-000000000046継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IRpcOptions (objidlbase.h) インターフェイスは、COM がリモートプロシージャコール (RPC) をどのように処理するかを制御するさまざまなプロパティの値を、呼び出し元が設定または照会できるようにします。

解説(Remarks)

このインターフェイスを使用すると、呼び出し元は COMBND_RPCTIMEOUT プロパティを設定または照会できます。このプロパティは、失敗するまでに自身のマシンが別のマシンとの RPC 通信の確立をどれだけの時間試みるかを制御します。このプロパティには、次の表に列挙されている値のいずれかを指定できます。

説明
RPC_C_BINDING_INFINITE_TIMEOUT タイムアウトなしで通信の確立を試み続けます。
RPC_C_BINDING_MIN_TIMEOUT プロトコルが要求する最小限の時間だけ通信の確立を試みます。この値は信頼性よりもパフォーマンスを優先します。
RPC_C_BINDING_DEFAULT_TIMEOUT 既定の時間だけ通信の確立を試みます。この値はパフォーマンスと信頼性のバランスを取ります。
RPC_C_BINDING_MAX_TIMEOUT プロトコルが許容する最大限の時間だけ通信の確立を試みます。この値はパフォーマンスよりも信頼性を優先します。

メソッド 2

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT Set(IUnknown* pPrx, RPCOPT_PROPERTIES dwProperty, UINT_PTR dwValue)

IRpcOptions::Set (objidlbase.h) メソッドは、RPC バインディングオプションプロパティの値を設定します。

pPrxIUnknown*inプロパティを設定する対象のプロキシへのポインター。
dwPropertyRPCOPT_PROPERTIESin設定するプロパティの識別子。COMBND_RPCTIMEOUT でなければなりません。
dwValueUINT_PTRinプロパティの新しい値。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

COMBND_RPCTIMEOUT プロパティに指定できる値の一覧については、IRpcOptions を参照してください。

vtbl 4 HRESULT Query(IUnknown* pPrx, RPCOPT_PROPERTIES dwProperty, UINT_PTR* pdwValue)

IRpcOptions::Query (objidlbase.h) メソッドは、RPC バインディングオプションプロパティの値を取得します。

pPrxIUnknown*inプロパティを照会する対象のプロキシへのポインター。
dwPropertyRPCOPT_PROPERTIESin照会するプロパティの識別子。COMBND_RPCTIMEOUT または COMBND_SERVER_LOCALITY でなければなりません (このフラグは Windows Server 2003 以降で使用できます)。
pdwValueUINT_PTR*outプロパティ値へのポインター。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTEDE_FAIL、および S_OK を返すことがあります。

解説(Remarks)

COMBND_RPCTIMEOUT プロパティは Set メソッドを使用して設定することもできますが、COMBND_SERVER_LOCALITY プロパティは照会のみ可能です。

COMBND_RPCTIMEOUT プロパティに指定できる値の一覧については、IRpcOptions を参照してください。

RPC 接続のリモート度合いを示す COMBND_SERVER_LOCALITY プロパティに指定できる値は、次の表に列挙されています。

説明
SERVER_LOCALITY_PROCESS_LOCAL 相手側はクライアントと同じプロセス内にあります。
SERVER_LOCALITY_MACHINE_LOCAL 相手側はクライアントと同じコンピューター上にありますが、別のプロセス内にあります。
SERVER_LOCALITY_REMOTE 相手側はリモートコンピューター上にあります。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IRpcOptions "{00000144-0000-0000-C000-000000000046}"
#usecom global IRpcOptions IID_IRpcOptions "{}"
#comfunc global IRpcOptions_Set    3 sptr,int,sptr
#comfunc global IRpcOptions_Query  4 sptr,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。