Como COM+ modifica valores de retorno
COM+ nunca altera o valor de retorno de um HRESULT que indica falha, como E_UNEXPECTED ou E_FAIL. No entanto, quando um objeto usando a funcionalidade COM+ retorna um valor HRESULT indicando êxito (como S_OK, S_FALSE ou NOERROR), COM+ às vezes converte o HRESULT em um código de erro COM+ antes de retornar ao chamador.
Por exemplo, quando um aplicativo retorna S_OK depois de chamar IObjectContext::SetComplete, se o objeto for a raiz de uma transação que não confirma, o HRESULT será convertido em CONTEXT_E_ABORTED.
Quando COM+ converte um valor HRESULT , ele limpa todos os parâmetros de saída do método. As referências retornadas são liberadas e os valores dos ponteiros de objeto retornados são definidos como NULL.
Tópicos relacionados