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 |
---|---|
|
El método se completó correctamente. |
|
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 |