CoSetCancelObject 関数 (combaseapi.h)
現在のスレッドでの後続の取り消し操作中に使用するキャンセル オブジェクトを設定 (登録) またはリセット (登録解除) します。
構文
HRESULT CoSetCancelObject(
[in, optional] IUnknown *pUnk
);
パラメーター
[in, optional] pUnk
現在のスレッドで設定またはリセットする cancel オブジェクトの IUnknown インターフェイスへのポインター。 このパラメーターが NULL の場合、一番上のキャンセル オブジェクトはリセットされます。
戻り値
この関数は、E_FAIL、E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTEDの標準戻り値と、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
cancel オブジェクトが正常に設定またはリセットされました。 |
|
キャンセル操作がブロックされているため、この時点では 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 |