In COM programming, an HRESULT is a defined type for a 32-bit-long integer containing
an error code. COM components such as ActiveX controls export functions (or methods)
that return HRESULT codes. An HRESULT integer contains bit fields that specify severity,
facility, and a code descriptor. HRESULTs are signed integers; zero or a positive value
indicates success, whereas a negative HRESULT indicates failure and usually causes an
exception to occur.