Compartilhar via


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

Cria um objeto COM que pode ser executado dentro do escopo da transação iniciada pelo objeto de contexto de transação.

Sintaxe

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

Parâmetros

[in] rclsid

Uma referência ao CLSID do tipo de objeto a ser instanciado.

[in] riid

Uma referência à ID da interface por meio da qual você se comunicará com o novo objeto.

[out] pObject

Uma referência a um novo objeto do tipo especificado pelo parâmetro rclsid , por meio da interface especificada pelo parâmetro riid .

Valor retornado

Esse método pode retornar os valores retornados padrão E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED e E_FAIL, bem como os valores a seguir.

Código de retorno Descrição
S_OK
O método foi concluído com sucesso.
REGDB_E_CLASSNOTREG
O componente especificado por rclsid não está registrado como um componente COM.

Comentários

Se o Coordenador de Transações Distribuídas da Microsoft não estiver em execução e o objeto for transacional, o objeto será criado com êxito. No entanto, as chamadas de método para esse objeto falharão com CONTEXT_E_TMNOTAVAILABLE. Os objetos não podem se recuperar dessa condição e devem ser liberados.

Exemplos

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 com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho comsvcs.h

Confira também

ITransactionContextEx