« libtheoraのサンプル | メイン | GUIDラッパークラス »

2005年10月10日

xilion 開発日誌:: HRESULTからエラー文字列を取得

    

HRESULT値からエラー文字列を取得する方法として、DirectShowを使っていた時、AMGetErrorTextを使っていたが、これですべてのエラーの文字列が得られるのかどうかは明言されていない。
DirectX9には、DXGetErrorString9 と言う関数があり、これは「このメソッドは、すべての Microsoft® DirectX® コンポーネントおよび Microsoft Win32® 関数からのエラー コードを処理する。」と書かれている。
これは!?と思ったが、このメソッドで返ってくる文字列は、HRESULTの各エラーのdefineされている名前だった。(E_FAILなど)
欲しいのは、名前ではなくてエラーの内容を表した文字列。
で、RPC_S_INVALID_STRING_UUIDと言うRPCのエラーに対しても、AMGetErrorTextを使ってみたところ、きちんとエラー文字列が返ってきた。
AMGetErrorTextは、DirectShow以外のものにも対応している?

他にもいろいろと調べていたところ、GetLastErrorで得られたDWORD値のエラーコードを文字列にするFormatMessageにHRESULTを入れると、きちんとエラー文字列が返ってきた。
もしかして、AMGetErrorTextはFormatMessageのラッパー?
とにかく、HRESULTのエラーもFormatMessageを使って文字列に出来るようだ。



投稿者 Takenori : 2005年10月10日 19:31




comments powered by Disqus
Total : Today : Yesterday : なかのひと