CoCancelCall 関数 (combaseapi.h)

指定したスレッドで保留中の送信 DCOM メソッド呼び出しの取り消しを要求します。

構文

HRESULT CoCancelCall(
  [in] DWORD dwThreadId,
  [in] ULONG ulTimeout
);

パラメーター

[in] dwThreadId

保留中の DCOM 呼び出しを取り消すスレッドの識別子。 このパラメーターが 0 の場合、呼び出しは現在のスレッド上にあります。

[in] ulTimeout

クライアントが取り消しを要求した後、サーバーが送信呼び出しを完了するまで CoCancelCall が待機する秒数。

戻り値

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

リターン コード 説明
S_OK
キャンセル要求が行われました。
E_NOINTERFACE
指定したスレッドに対応する cancel オブジェクトはありません。
CO_E_CANCEL_DISABLED
呼び出しの取り消しは、指定されたスレッドでは有効になっていません。
RPC_E_CALL_COMPLETE
タイムアウト間隔中に呼び出しが完了しました。
RPC_E_CALL_CANCELED
呼び出しは既に取り消されています。

解説

CoCancelCall は 、実行中の呼び出しのキャンセル オブジェクトで CoGetCancelObject を呼び出し 、次に ICancelMethodCalls::Cancel を呼び出します。

この関数では、非同期呼び出しのキャンセル オブジェクトは見つかりません。

オブジェクト サーバーは、 CoTestCancel を定期的に呼び出すことによって、呼び出しが取り消されたかどうかを判断できます。 呼び出しが取り消された場合、オブジェクト サーバーはクリーンし、制御をクライアントに返す必要があります。

要件

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

関連項目

CoTestCancel