トップ回答者
HResultの値

質問
回答
すべての返信
-
Windows SDKのwinerror.hには
#define __HRESULT_FROM_WIN32(x) ((HRESULT)(x) <= 0 ? ((HRESULT)(x)) : ((HRESULT) (((x) & 0x0000FFFF) | (FACILITY_WIN32 << 16) | 0x80000000)))
のように定義されています。実際、-2147024891は16進表記で0x80070005であり、ERROR_ACCESS_DENIED(5)を表していることがわかります。Visual Basicでも同様に変換すればいいかと。
- 回答の候補に設定 AzuleanMVP, Moderator 2019年7月10日 3:16
-
この質問は HRESULT の成り立ちを知りたかったということで合っていますか?そうであれば、特に問題ないと思います。
もし、実際のコードでこのように書こうとされている場合はちょっともやっとするので...。
この例外クラスは HRESULT 固定 であるので違う値のことはほぼなく、when を書いても意味がなさそうに見えるため。