다음을 통해 공유


ITransactionContextEx::Abort 메서드(comsvcs.h)

현재 트랜잭션에 참여하는 모든 COM 개체의 작업을 중단합니다. 트랜잭션이 이 메서드에서 반환되면 종료됩니다.

구문

HRESULT Abort();

반환 값

이 메서드는 다음 값뿐만 아니라 E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.

반환 코드 Description
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
헤더 comsvcs.h

추가 정보

ITransactionContextEx