Método ITransactionContextEx::CreateInstance (comsvcs.h)

Crea un objeto COM que se puede ejecutar dentro del ámbito de la transacción iniciada por el objeto de contexto de transacción.

Sintaxis

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

Parámetros

[in] rclsid

Referencia al CLSID del tipo de objeto al que se va a crear una instancia.

[in] riid

Referencia al identificador de interfaz de la interfaz a través de la cual se comunicará con el nuevo objeto.

[out] pObject

Referencia a un nuevo objeto del tipo especificado por el parámetro rclsid , a través de la interfaz especificada por el parámetro riid .

Valor devuelto

Este método puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED y E_FAIL, así como los siguientes valores.

Código devuelto Descripción
S_OK
El método se completó correctamente.
REGDB_E_CLASSNOTREG
El componente especificado por rclsid no se registra como un componente COM.

Comentarios

Si el Coordinador de transacciones distribuidas de Microsoft no se está ejecutando y el objeto es transaccional, el objeto se crea correctamente. Sin embargo, se producirá un error en las llamadas de método a ese objeto con CONTEXT_E_TMNOTAVAILABLE. Los objetos no se pueden recuperar de esta condición y deben liberarse.

Ejemplos

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


Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado comsvcs.h

Consulte también

ITransactionContextEx