COM uses three schemes to report error information to client applications:
All COM interface methods return an integer status code (known as an
HRESULT), with COM defining many common values for these
HRESULTs. There is an
HRESULTto indicate success and a number of
HRESULTs that indicate warnings. All other
HRESULTvalues indicate an error status.
COM defines two special interfaces that report extended error information—
IErrorInfo. When any method fails, the client can perform a
QueryInterface()to determine if the interface supports providing additional error information.
IDispatch(automation) interfaces have a standard technique for reporting COM exceptions. When an
IDispatchobject encounters an error, it fills out an exception structure and returns it to the caller.
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:
HRESULTof the COM function.
A text representation of the
HRESULT. For example, if the
E_NOINTERFACE, the text representation is (for English users) “No such interface supported.”
Additional exception information as described later in this chapter, or
Noneif no additional ...