Share via


Metodo ITransactionContextEx::CreateInstance (comsvcs.h)

Crea un oggetto COM che può essere eseguito nell'ambito della transazione avviata dall'oggetto contesto della transazione.

Sintassi

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

Parametri

[in] rclsid

Riferimento al CLSID del tipo di oggetto da creare un'istanza.

[in] riid

Riferimento all'ID interfaccia dell'interfaccia tramite cui si comunica con il nuovo oggetto.

[out] pObject

Riferimento a un nuovo oggetto del tipo specificato dal parametro rclsid , tramite l'interfaccia specificata dal parametro riid .

Valore restituito

Questo metodo può restituire i valori restituiti standard E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED e E_FAIL, nonché i valori seguenti.

Codice restituito Descrizione
S_OK
Metodo completato correttamente.
REGDB_E_CLASSNOTREG
Il componente specificato da rclsid non è registrato come componente COM.

Commenti

Se Microsoft Distributed Transaction Coordinator non è in esecuzione e l'oggetto è transazionale, l'oggetto viene creato correttamente. Tuttavia, le chiamate al metodo a tale oggetto avranno esito negativo con CONTEXT_E_TMNOTAVAILABLE. Gli oggetti non possono essere ripristinati da questa condizione e devono essere rilasciati.

Esempio

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);


Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione comsvcs.h

Vedi anche

ITransactionContextEx