32-bit value consisting of 3 fields:
- Severity code - indicated whether the return value represents information, warning or error
- Facility code - identifies the area of the system responsible for the error
- Error code - unique number assigned to represent the exception
Each exception is mapped to a HRESULT. When managed code throws an exception, the runtime passes the HRESULT to the COM client. When unmanaged code throws an error, the HRESULT is converted to an exception, which is thrown by the runtime.