This post has been republished via RSS; it originally appeared at: Channel 9.
In this episode of Defrag Tools, we talk about HRESULT based Error Codes. The 32bits in the HRESULT have meanings, allowing the reader to gain additional insights into the error.
Of note:
The 32nd bit (the top bit) indicates if an error occurred or not. This is why errors are 0x8xxxxxxx.
The 16-26 bits are the Facility - the originating API (Win32, CLR, XAML, etc.).
The 0-15 bits are the (Error) Code.
Common NULL Facility Error Codes
Name | Description | Value |
---|---|---|
S_OK | Operation successful | 0x00000000 |
S_FALSE | Operation successful but returned no results | 0x00000001 |
E_ABORT | Operation aborted | 0x80004004 |
E_FAIL | Unspecified failure | 0x80004005 |
E_NOINTERFACE | No such interface supported | 0x80004002 |
E_NOTIMPL | Not implemented | 0x80004001 |
E_POINTER | Pointer that is not valid | 0x80004003 |
E_UNEXPECTED | Unexpected failure | 0x8000FFFF |
Common Win32 Facility Error Codes
These are built by passing a System Error Code to HRESULT_FROM_WIN32
Name | Description | Value |
---|---|---|
E_ACCESSDENIED | General access denied error | 0x80070005 |
E_HANDLE | Handle that is not valid | 0x80070006 |
E_INVALIDARG | One or more arguments are not valid | 0x80070057 |
E_OUTOFMEMORY | Failed to allocate necessary memory | 0x8007000E |
Related Links:
HRESULT
HRESULT Facility – By Value
HRESULT Facility – By Name
