AtlReportError
Configura o IErrorInfo interface 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] O CLSID do objeto informando o erro.lpszDesc
[in] A seqüência de caracteres descrevendo o erro.As versões Unicode especificar que lpszDesc é do tipo LPCOLESTR; o ANSI versão Especifica um tipo de LPCSTR.iid
[in] O IID da interface definindo o erro ou GUID_NULL Se o erro é definido pelo sistema operacional.hRes
[in] The HRESULT você deseja que seja retornada ao chamador.nID
[in] O identificador de recurso onde a seqüência de caracteres de descrição do erro está armazenada.Esse valor deve estar entre 0x0200 e 0xFFFF, inclusive.Em compilações de depurar, um DECLARAR resultará se nID não indexa uma cadeia de caracteres válida. Nas compilações lançadas, a seqüência de caracteres de descrição de erro será definida como "Erro desconhecido".dwHelpID
[in] O identificador de contexto de ajuda para o erro.lpszHelpFile
[in] O caminho e o nome do arquivo de Ajuda descrevendo o erro.hInst
[in] O identificador para o recurso.Por padrão, este parâmetro é __AtlBaseModuleModule::GetResourceInstance, where __AtlBaseModuleModule é a instância global da CAtlBaseModule ou uma classe derivado dele.
Valor de retorno
Se o hRes parâmetro é diferente de zero, retorna o valor de hRes. If hRes for zero, as quatro primeiras versões do AtlReportError retornar DISP_E_EXCEPTION. As duas últimas versões retornam o resultado da macro MAKE_HRESULT FACILITY_ITF, (1, nID ).
Comentários
A seqüência de caracteres lpszDesc é usado sistema autônomo a descrição de texto do erro.Quando o cliente recebe o hRes você retornar a partir de AtlReportError, o cliente pode acessar o IErrorInfo estrutura 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 no C++ catch manipuladores. Algumas substituições dessas funções usar macros ATL seqüência conversão internamente, que por sua vez usar o _alloca funcione internamente. Usando AtlReportError em um problema de C++ manipulador pode causar exceções C++ catch manipuladores. |
Requisitos
Cabeçalho: atlcom.h