Compartilhar via


SetErrorInfo

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função define o objeto informações de erro para o atual segmento de execução.

Syntax

HRESULT SetErrorInfo( 
  DWORD dwReserved, 
  IErrorInfo* perrinfo 
); 

Parameters

  • dwReserved
    [no] Reservado para uso futuro; Deve definir como zero.
  • perrinfo
    [no] Ponteiro para um objeto de erro que ofereça suporte a IErrorInfo.

Return Value

Retorna o valor HRESULT S_OK se bem-sucedido.

Remarks

Essa função libera o objeto informações de erro existentes, se existe um e define o ponteiro para perrinfo.

Use esta função depois de criar um objeto de erro que associa o objeto com o atual segmento de execução.

Se a propriedade ou método que chama SetErrorInfo é chamado por DispInvoke, DispInvoke faz o seguinte:

  • Preenche o parâmetro EXCEPINFO com os valores especificados no objeto de informações de erro
  • Retorna DISP_E_EXCEPTION quando a propriedade ou método retorna um valor falha para DispInvoke.

Função Virtual tabela (VTBL) ligação controladores que não são usados IDispatch::Invoke Pode get o objeto informações de erro usando GetErrorInfo. Isso permite que um objeto que ofereça suporte a uma interface dupla para usar SetErrorInfo, independentemente se o cliente usa ligação VTBL ou IDispatch.

Passagem inválido (e, em algumas circunstâncias NULL) ponteiros para essa função faz com que uma terminação inesperada do aplicativo.

Example

O seguinte exemplo codificar mostra como usar o SetErrorInfo função.

Para usar essa função corretamente, verifique se você possui uma estrutura EXCEPINFO que é preenchida com informações sobre a exceção que ocorreu.

ICreateErrorInfo *pcerrinfo;
  IErrorInfo *perrinfo;
  HRESULT hr;
hr = CreateErrorInfo(&pcerrinfo);
hr = pcerrinfo->SetGUID(IID_IHello);
hr = pcerrinfo->SetSource(m_excepinfo.bstrSource);
hr = pcerrinfo->SetDescription(m_excepinfo.bstrDescription);
hr = pcerrinfo->SetHelpFile(NULL);
hr = pcerrinfo->SetHelpContext(0);

hr = pcerrinfo->QueryInterface(IID_IErrorInfo, (LPVOID FAR*) &perrinfo);
if (SUCCEEDED(hr))
  {
    SetErrorInfo(0, perrinfo);
    perrinfo->Release();
  }
pcerrinfo->Release();

Requirements

Header oleauto.h
Library oleaut32.lib
Windows Embedded CE Windows CE 1.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

Automation Functions
DispInvoke
IDispatch::Invoke
GetErrorInfo
IDispatch