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 |