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,以及以下值。

返回代码 说明
S_OK
该方法已成功完成。
REGDB_E_CLASSNOTREG
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

另请参阅

ITransactionContextEx