Поделиться через


Метод ITransactionContextEx::Abort (comsvcs.h)

Прерывает работу всех COM-объектов, участвующих в текущей транзакции. Транзакция заканчивается при возврате из этого метода.

Синтаксис

HRESULT Abort();

Возвращаемое значение

Этот метод может возвращать стандартные возвращаемые значения E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.

Код возврата Описание
S_OK
Транзакция была прервана.
E_FAIL
Объект 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
Header comsvcs.h

См. также раздел

ITransactionContextEx