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");
}
Cuidado |
---|
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