DirectX の HRESULT値が被ってる
エラーコードについて調査してて気づいたんですが…
例えば
- DIERR_NOTDOWNLOADED - DirectInput
- VFW_E_ENUM_OUT_OF_SYNC - DirectShow
というエラーコードは、共に「0x80040203」という値です。
関数の戻り値を、その場の場限りの値として利用するだけであれば問題ないかと思うのですが…
DirectX にはエラー処理用の関数として DXGetErrorString9 なる関数があり、DirectX / COM の全ての戻り値を文字列化することが可能です。
さて、この関数の中に 0x80040203 を投げ込んだら、どの文字列が返ってくるのよと。 実験してみました。
結果
DIERR_NOTDOWNLOADED & VFW_E_ENUM_OUT_OF_SYNC & DMO_E_TYPE_NOT_SET
…&っすか。(ぉ
…いやまぁ…3つのうち*1のどれかであることは確かなんですけどね。けどね。けどね。
何だろう、この腑に落ちない感は。^^;
*1:2つだけじゃなかったのか…