Episódio

Códigos de erro HRESULT

Os 32bits em um código de erro HRESULT têm significados, permitindo que o leitor obtenha insights adicionais sobre o erro.

De notar:

O 32º bit (o bit superior) indica se ocorreu um erro ou não. É por isso que os erros são 0x8xxxxxxx.
Os 16-26 bits são o Recurso - a API de origem (Win32, CLR, XAML, etc.).
Os 0-15 bits são o código (erro).

Códigos de erro comuns do recurso NULL

NomeDescriçãoValor
S_OKOperação concluída com êxito0x00000000
S_FALSEOperação bem-sucedida, mas sem resultados0x00000001
E_ABORTOperação anulada0x80004004
E_FAILFalha não especificada0x80004005
E_NOINTERFACENão há suporte para essa interface0x80004002
E_NOTIMPLNão implementado0x80004001
E_POINTERPonteiro que não é válido0x80004003
E_UNEXPECTEDFalha inesperada0x8000FFFF

Códigos de erro comuns do recurso Win32

Eles são criados passando um código de erro do sistema para HRESULT_FROM_WIN32

NomeDescriçãoValor
E_ACCESSDENIEDErro de acesso geral negado0x80070005
E_HANDLEIdentificador que não é válido0x80070006
E_INVALIDARGUm ou mais argumentos não são válidos0x80070057
E_OUTOFMEMORYFalha ao alocar a memória necessária0x8007000E

Links relacionados:

RESULTADO
Facilidade HRESULT – Por Valor
Facilidade HRESULT – Por Nome