Compartilhar via


AtlReportError

Configura de interface de IErrorInfo para fornecer informações de erro para clientes do objeto.

HRESULT WINAPI AtlReportError(
   const CLSID& clsid,
   LPCOLESTR lpszDesc,
   const IID& iid = GUID_NULL,
   HRESULT hRes = 0 
);
HRESULT WINAPI AtlReportError(
   const CLSID& clsid,
   LPCOLESTR lpszDesc,
   DWORD dwHelpID,
   LPCOLESTR lpszHelpFile,
   const IID& iid = GUID_NULL,
   HRESULT hRes = 0 
);
HRESULT WINAPI AtlReportError(
   const CLSID& clsid,
   LPCSTR lpszDesc,
   const IID& iid = GUID_NULL,
   HRESULT hRes = 0 
);
HRESULT WINAPI AtlReportError(
   const CLSID& clsid,
   LPCSTR lpszDesc,
   DWORD dwHelpID,
   LPCSTR lpszHelpFile,
   const IID& iid = GUID_NULL,
   HRESULT hRes = 0 
);
HRESULT WINAPI AtlReportError(
   const CLSID& clsid,
   UINT nID,
   const IID& iid = GUID_NULL,
   HRESULT hRes = 0,
   HINSTANCE hInst = _AtlBaseModule.GetResourceInstance( )
);
HRESULT WINAPI AtlReportError(
   const CLSID& clsid,
   UINT nID,
   DWORD dwHelpID,
   LPCOLESTR lpszHelpFile,
   const IID& iid = GUID_NULL,
   HRESULT hRes = 0,
   HINSTANCE hInst = _AtlBaseModule.GetResourceInstance( )
);

Parâmetros

  • clsid
    [in] CLSID de O objeto que relata o erro.

  • lpszDesc
    [in] a cadeia de caracteres que descreve o erro.As versões Unicode especificam que lpszDesc é do tipo LPCOLESTR; a versão ANSI especifica um tipo de LPCSTR.

  • iid
    [in] O IID de interface que define o erro ou GUID_NULL se o erro é definido pelo sistema operacional.

  • hRes
    [in] HRESULT você deseja retornado para o chamador.

  • nID
    [in] o identificador do recurso onde a cadeia de caracteres de descrição de erro é armazenada.Esse valor deve encontrar-se entre 0x0200 e 0xFFFF, inclusiva.Em compilações de depuração, ASSERT resultará se nID não indexa uma cadeia de caracteres válido.Em construções de versão, a cadeia de caracteres de descrição de erro será “error” não definido.

  • dwHelpID
    [in] o identificador do contexto da ajuda para o erro.

  • lpszHelpFile
    [in] o caminho e o nome da ajuda arquivo a descrição do erro.

  • hInst
    [in] o identificador do recurso.Por padrão, este parâmetro é __AtlBaseModuleModule::GetResourceInstance, onde é __AtlBaseModuleModule a instância global de CAtlBaseModule ou uma classe derivada de ele.

Valor de retorno

Se o parâmetro de hRes é diferente de zero, retorna o valor de hRes.Se hRes é zero, então os primeiros quatro versões de retorno DISP_E_EXCEPTIONde AtlReportError .As duas versões mais recentes retornar o resultado de MAKE_HRESULT( 1, FACILITY_ITF, macronID ).

Comentários

O lpszDesc de cadeia de caracteres é usado como a descrição de texto de erro.Quando o cliente recebe hRes que você retorna de AtlReportError, o cliente pode acessar a estrutura de IErrorInfo para obter detalhes sobre o erro.

Exemplo

STDMETHODIMP CMyControl::MyErrorProneMethod()
{
   BOOL bSucceeded = ErrorProneFunc();
   if (bSucceeded)
      return S_OK;
   else
      // hRes is set to DISP_E_EXCEPTION
      return AtlReportError(GetObjectCLSID(), L"My error message");
}
Observação de cuidadoCuidado

Não use AtlReportError em manipuladores catch C++.Substitui algumas de essas funções usam macros de conversão de cadeia de caracteres de ATL internamente, que usam por sua vez a função de _alloca internamente.Usar AtlReportError no manipulador de captura de C++ pode causar exceções em manipuladores catch C++.

Requisitos

Cabeçalho: atlcom.h

Consulte também

Referência

MAKE_HRESULT

Outros recursos

Funções globais de depuração e relatório de erros