ITransactionContextEx::Abort メソッド (comsvcs.h)
現在のトランザクションに参加しているすべての COM オブジェクトの作業を中止します。 トランザクションは、このメソッドからのリターンで終了します。
構文
HRESULT Abort();
戻り値
このメソッドは、E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTEDの標準戻り値と、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
トランザクションは中止されました。 |
|
TransactionContextEx オブジェクトが COM+ プロセスで実行されていないため、TransactionContextEx コンポーネントのレジストリ エントリが破損している可能性があります。 |
注釈
Abort を呼び出すと、 メソッドの戻り時にトランザクションが終了し、参加しているすべてのオブジェクトが自動的に非アクティブ化されます。 トランザクションに参加している各リソース マネージャーは、これらのオブジェクトに代わって実行された操作をロールバックします。
例
ITransactionContextEx* pTransactionContext = NULL;
IMyObject* pMyObject = NULL;
boolean bUserCanceled = FALSE;
HRESULT hr;
// Get TransactionContextEx.
hr = CoCreateInstance(CLSID_ITransactionContextEx,
NULL, CLSCTX_INPROC, IID_ITransactionContextEx,
(void**)&pTransactionContext);
if (FAILED(hr)) throw(hr);
// Create an instance of MyObject.
hr = pTransactionContext->CreateInstance(CLSID_CMyObject,
IID_IMyObject, (void**)&pMyObject);
if (FAILED(hr)) throw(hr);
// Do some work here.
// If something goes wrong, abort the transaction.
if (bUserCanceled) {
hr = pTransactionContext->Abort();
if (FAILED(hr)) throw(hr);
// Otherwise, commit it.
} else {
hr = pTransactionContext->Commit();
if (FAILED(hr)) throw(hr);
}
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | comsvcs.h |