ITransactionContextEx::Abort 메서드(comsvcs.h)
현재 트랜잭션에 참여하는 모든 COM 개체의 작업을 중단합니다. 트랜잭션이 이 메서드에서 반환되면 종료됩니다.
구문
HRESULT Abort();
반환 값
이 메서드는 다음 값뿐만 아니라 E_INVALIDARG, E_OUTOFMEMORY 및 E_UNEXPECTED 표준 반환 값을 반환할 수 있습니다.
반환 코드 | Description |
---|---|
|
트랜잭션이 중단되었습니다. |
|
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 |