Win32API質問箱 Build48

このエントリーをはてなブックマークに追加
772デフォルトの名無しさん
>>764
http://msdn2.microsoft.com/en-us/ms690088.aspx
HRESULTの値はようするに最上位ビットが立っていれば失敗、そうでなければ成功を表す。
あとは予約部分、Microsoft定義かどうか、種類 (FACILITY)、コードの部分に分けられる。
(機会は滅多に無いだろうけど)自分でHRESULT型の定数を作るときにはFACILITYを独自の値にする必要がある。

HRESULT型の定数の名前は、失敗の場合基本的にナントカ_E_カントカという形式だが、一般的なものはE_カントカという形式。
と言っても実際はE_カントカばかり目にする気がする。
(ナントカには種類名が入る: OLE_E_WRONGCOMPOBJとか)
もっともFAILED/SUCEEDEDマクロを主に使うので定数を直に使うこと自体少ないと思う。
成功の場合はS_ナントカ。標準ではS_OK以外にもS_FALSE(メソッドの呼出は成功したけど……)というのがある。

あとHRESULTなどをいじるマクロ。
http://msdn2.microsoft.com/en-us/ms528334.aspx