AtlThrow
Chamar essa função para sinalizar um erro com base em um código de status de HRESULT .
inline void AtlThrow(
HRESULT hr
);
Parâmetros
- hr
Valor padrão do HRESULT.
Comentários
Essa função é usada pelo código de ATL e de MFC no caso de uma condição de erro.Também pode ser chamada do seu próprio código.A implementação padrão da função depende de definição do símbolo _ATL_NO_EXCEPTIONS e o tipo de projeto, MFC de ou de ATL.
Em todos os casos, essa função rastreamento do depurador ao HRESULT.
Se _ATL_NO_EXCEPTIONS não é definido em um projeto MFC, o gera de essa função CMemoryException ou COleException com base no valor do HRESULT.
Se _ATL_NO_EXCEPTIONS não é definido em um projeto de ATL, a função gera CAtlException.
Se _ATL_NO_EXCEPTIONS é definido, a função causa uma falha de declaração em vez de gerar uma exceção.
Para projetos de ATL, é possível fornecer sua própria implementação de essa função a ser usada por ATL no caso de uma falha.Para fazer isso, defina sua própria função com a mesma assinatura de AtlThrow e o #define AtlThrow para o nome da função.Isso deve ser feito antes de incluir atlexcept.h (que significa que deve ser feito antes de incluir todos os cabeçalhos de ATL desde que atlbase.h inclui atlexcept.h).
Exemplo
// Constructors and operators cannot return error codes, and
// so they are the place where exceptions are generally used.
class CMyClass
{
private:
CComPtr<IBuddy> m_spBuddy;
public:
CMyClass()
{
HRESULT hr = m_spBuddy.CoCreateInstance(CLSID_Buddy);
if (FAILED(hr))
AtlThrow(hr);
}
// methods ..
};
Requisitos
Cabeçalho: atldef.h