Here's an example of using Err.exe to look up the possible meanings of COM error code 0x80004005:
C:\>err 80004005# for hex 0x80004005 / decimal -2147467259 : DDERR_GENERIC ddraw.h DIERR_GENERIC dinput.h DPERR_GENERIC dplay.h DPNERR_GENERIC dplay8.h DSERR_GENERIC dsound.h DVERR_GENERIC dvoice.h ecError ec.h MAPI_E_CALL_FAILED mapicode.h STIERR_GENERIC stierr.h E_FAIL winerror.h# Unspecified error# 10 matches found for "80004005"