投稿者 魔界の仮面弁士  (社会人) 投稿日時 2017/9/7 18:44:59
HResult プロパティは、IOException のみならず、
素の Exception クラスにも用意されています。

ただし、.NET 3.5 までは Protected Get/Protected Set でした。
.NET 4 以降で、Public Get/Protected Set なスコープに変更されています。

HRESULT の意味についてはこちら。
https://msdn.microsoft.com/ja-jp/library/system.exception.hresult.aspx
http://ascii.jp/elem/000/001/432/1432965/


エラーコードに対応するメッセージを知りたければ、Win32Exception.Message を利用できます。
Dim ex As New System.ComponentModel.Win32Exception(STIERR_SHARING_VIOLATION)
MsgBox(ex.Message)
Throw ex



さて、ご質問の『定数一覧』ですが、基本的には、Windows SDK のヘッダーファイルから
取得することになります。公式のものでなくても良ければ、下記が便利でしょう。
http://ir9.jp/prog/ayu/win32err.htm#com

ただし、上記にも掲載されていないコードはありますので、あくまでも参考程度に。
 例:XPS_E_某系のエラー(0x8052**** 番台)

また、エラーの発生元が変わることで、同じエラーコードが別の意味を持つこともあります。
 例:0x80040200 = TS_E_INVALIDPOS = EVENT_E_FIRST = MPEG2_E_UNINITIALIZED