ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
そういう意味だったのか。8から始まった4ビットと、最終ビットで読めるのか!
HRESULTは、32bitデータの下位5ビットでエラーの種類を表している。ただし、5ビット目(bit4。Xビット)は使われておらず0に固定である。最下位にあるSビットはエラーなのか、そうでないのかを表していて、エラーの場合ここが1になる。残りはゼロになるため、エラーコードの先頭は、必ず8、つまり0x8xxxxxxx」(xは任意の16進数)というパターンになる。
ASCII.jp:Windowsで表示されるエラーコードの見方|Windows Info
HRESULTでは、bit5(6ビット目)からbit15は、ファシリティ(Facility)と呼ばれるフィールドで、エラーの分類(発生位置)を示す。ここが0x007の場合は、Win32エラーだ。なお、ファシリティのリストは前述の文書にある。