共用方式為


ITransactionCoNtextEx::CreateInstance 方法 (comsvcs.h)

建立 COM 物件,該物件可以在交易內容物件所起始的交易範圍內執行。

語法

HRESULT CreateInstance(
  [in]  REFCLSID rclsid,
  [in]  REFIID   riid,
  [out] void     **pObject
);

參數

[in] rclsid

要具現化之物件類型的 CLSID 參考。

[in] riid

介面識別碼的參考,您會透過該介面與新物件進行通訊。

[out] pObject

透過riid參數所指定的介面,參考rclsid參數所指定之型別的新物件。

傳回值

這個方法可以傳回標準傳回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED和E_FAIL,以及下列值。

傳回碼 描述
S_OK
已成功完成命令。
REGDB_E_CLASSNOTREG
rclsid指定的元件未註冊為 COM 元件。

備註

如果 Microsoft Distributed Transaction Coordinator 未執行且物件為交易式,則已成功建立物件。 不過,對該物件的方法呼叫將會因為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 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 comsvcs.h

另請參閱

ITransactionCoNtextEx