Share via


CoTestCancel 関数 (combaseapi.h)

サーバーで実行されている呼び出しがクライアントによって取り消されたかどうかを判断します。

構文

HRESULT CoTestCancel();

戻り値

この関数は、E_FAIL、E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTEDの標準戻り値と、次の値を返すことができます。

リターン コード 説明
RPC_S_CALLPENDING
呼び出しはまだ保留中であり、クライアントによってまだ取り消されていません。
RPC_E_CALL_CANCELED
クライアントによって呼び出しが取り消されました。

注釈

サーバー オブジェクトは、クライアントのキャンセル要求を検出するために戻る前に 、CoTestCancel を少なくとも 1 回呼び出す必要があります。 これにより、クライアントが取り消し要求を発行した場合にサーバーの不要な作業を節約でき、取り消しタイムアウトをRPC_C_CANCEL_INFINITE_TIMEOUTに設定した場合、クライアントの待機時間を短縮できます。 さらに、保留中の呼び出しから戻る前にサーバー オブジェクトがキャンセル要求を検出した場合は、作成または取得したメモリ、マーシャリングされたインターフェイス、またはハンドルをクリーンできます。

CoTestCancelCoGetCallContext を呼び出して、現在の cancel オブジェクトの ICancelMethodCalls インターフェイスを取得し、 ICancelMethodCalls::TestCancel を呼び出します。 カスタム マーシャリングを実装するオブジェクトは、最初に CoSwitchCallContext を呼び出して、適切な呼び出しコンテキスト オブジェクトをインストールする必要があります。

この関数は、非同期呼び出しの取り消しをテストしません。

要件

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

こちらもご覧ください

ICancelMethodCalls