Question: I'm at a loss for where to get the best information about the meaning, likely causes, and possible solutions to resolve COM errors when all you have is the HRESULT.

Searching Google for terms like '80004027' is just about useless as it sends you to random discussion groups where 90% of the time, the question 'What does 80004027 mean?' is not answered.

What is a good resource for this? Why isn't MSDN the top Google result?

Answer: 
Error Lookup (ErrLook.exe) in your %PROGRAMFILES%[Some version of Visual Studio]\Tools Common7\ folder will give you the error message often, but not always:

```

    |---------------------------------------------------|
    | [] Error Lookup                                   |
    |---------------------------------------------------|
    |   Value: [0x80004027]                             |
    |                                                   |
    |   Error Message                                   |
    |   +---------------------------------------------+ |
    |   |The component or application containing the  | |
    |   |component has been disabled                  | |
    |   |                                             | |
    |   +---------------------------------------------+ |
    |   [Modules...]    [Look up]    [Close]    [Help]  |
    |----------------------------------------------------

```

If this doesn't work, you might follow some ideas from here:
<http://blogs.msdn.com/oldnewthing/archive/2008/09/01/8914664.aspx>

(Error Lookup simply calls FormatMessage() with the FORMAT\_MESSAGE\_FROM\_SYSTEM
flag)

If the COM error is not a system error, you might also have to check the documentation of the component that threw the error.

If you are catching the error in code, you can hope that the component implements rich errors (GetErrorInfo(), same as the Err object in VB) so you can get a full message describing the problem.
Good link from Prakash (I wasn't aware of the RCNr stuff - I thought those bytes were part of the facility - but that's only true in 16 bit Windows it seems.) 

Often these unknown codes are specific to the interface/component you're using. The facility would be set to FACILITY\_ITF. I have an old program HRPlus ([link?](http://www.simtel.net/product.php%5Bid%5D8407%5Bcid%5D228%5BSiteID%5Dsimtel.net)) that parses HRESULTs.