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,以及下列值。
傳回碼 | 描述 |
---|---|
|
已成功完成命令。 |
|
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 |