potisanのプログラミングメモ

プログラミング素人です。昔の自分を育ててくれたネット情報に少しでも貢献できるよう、情報を貯めていこうと思っています。Windows環境のC++やC#がメインです。

Python 3 ctypesは関数のrestypeにctypes.HRESULTを指定すると自動でエラーを発生する

ctypesモジュールは関数のrestypectypes.HRESULTを指定すると戻り値がエラーの場合に自動でraiseするようです。エラーの発生時は手動で握りつぶそうとしていたのですが、可読性のためにctypes.c_intctypes.HRESULTに変えたらOSErrorが発生するようになりました。便利ですが気づきにくい仕様です。

追記(2024/8/10):公式ドキュメントではctypes.OleDLLの説明にそれらしい記載があります。記載中のHRESULTの扱いはctypes.OleDLL以外でも適用されるようです。