ITransactionContextEx::CreateInstance 方法 (comsvcs.h)
创建可在事务上下文对象启动的事务范围内执行的 COM 对象。
语法
HRESULT CreateInstance(
[in] REFCLSID rclsid,
[in] REFIID riid,
[out] void **pObject
);
参数
[in] rclsid
对要实例化的对象类型的 CLSID 的引用。
[in] riid
对接口的接口 ID 的引用,你将通过该接口与新对象进行通信。
[out] pObject
通过 riid 参数指定的接口,对 rclsid 参数指定的类型的新对象的引用。
返回值
此方法可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED和E_FAIL,以及以下值。
返回代码 | 说明 |
---|---|
|
该方法已成功完成。 |
|
rclsid 指定的组件未注册为 COM 组件。 |
注解
如果 Microsoft 分布式事务处理协调器未运行且对象是事务性的,则已成功创建对象。 但是,对该对象的方法调用将失败并CONTEXT_E_TMNOTAVAILABLE。 对象无法从此条件中恢复,应释放对象。
示例
ITransactionContextEx* pTransactionContext = NULL;
IMyObject* pMyObject = NULL;
HRESULT hr;
// Get TransactionContextEx.
hr = CoCreateInstance(CLSID_TransactionContextEx,
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);
要求
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | comsvcs.h |