次の方法で共有


CoSetCancelObject 関数 (combaseapi.h)

現在のスレッドでの後続の取り消し操作中に使用するキャンセル オブジェクトを設定 (登録) またはリセット (登録解除) します。

構文

HRESULT CoSetCancelObject(
  [in, optional] IUnknown *pUnk
);

パラメーター

[in, optional] pUnk

現在のスレッドで設定またはリセットする cancel オブジェクトの IUnknown インターフェイスへのポインター。 このパラメーターが NULL の場合、一番上のキャンセル オブジェクトはリセットされます。

戻り値

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

リターン コード 説明
S_OK
cancel オブジェクトが正常に設定またはリセットされました。
E_ACCESSDENIED
キャンセル操作がブロックされているため、この時点では cancel オブジェクトを設定またはリセットできません。

注釈

標準マーシャリングをサポートするオブジェクトの場合、プロキシ オブジェクトは CoSetCancelObject を呼び出してメソッド呼び出しのマーシャリングを開始し、現在のスレッドのキャンセル オブジェクトを登録します。

CoSetCancelObject は、cancel オブジェクトの ICancelMethodCalls に対して QueryInterface を呼び出します。 cancel オブジェクトが ICancelMethodCalls を実装していない場合、 CoSetCancelObject は E_NOINTERFACEで失敗します。 カスタム マーシャリングされたインターフェイスでキャンセル操作を無効にするには、 ICancelMethodCalls::Cancel の実装は、E_NOTIMPL、E_FAIL、またはその他の適切な値を返す以外に何も行いません。

CoSetCancelObject は 、登録するオブジェクトに 対して AddRef を呼び出し、登録を解除するオブジェクトに対して Release を呼び出します。

CoSetCancelObject は、非同期メソッドのキャンセル オブジェクトを設定またはリセットしません。

要件

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

こちらもご覧ください

ICancelMethodCalls