COM uses three schemes to report error information to client applications:
All COM interface methods return an integer status code (known as an
), with COM defining many common values for
HRESULTs. There is an
HRESULT to indicate success and a number of
HRESULTs that indicate warnings. All other
HRESULT values indicate an error status.
COM defines two special interfaces that report extended error
When any method fails, the client can perform a
to determine if the interface supports providing additional error
(automation) interfaces have a standard technique for reporting COM
exceptions. When an
IDispatch object encounters an
error, it fills out an exception structure and returns it to the
The PythonCOM framework combines all these error-reporting mechanisms into a single, Python-exception mechanism. This means you can effectively ignore the three techniques listed: PythonCOM unifies them, so you never need to know how the details of an error were obtained.
All COM errors are reported to Python programs as
exceptions. The exception value has
the following parts:
HRESULT of the COM function.
A text representation of the
HRESULT. For example,
E_NOINTERFACE, the text representation is (for
English users) “No such interface supported.”
Additional exception information as described later in this chapter,
None if no additional ...