掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
COMの初期化とCoInitialize関数について (ID:59210)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ということは、E_・・・という値が無い以上、 > 「エラーを起こすことのない関数」と思っていた方がいいんですかね・・・。 MSDN の CoInitialize には、例えば以下のようにエラーコードも ちゃんと書かれていますが。 <MSDN> This function supports the standard return values E_INVALIDARG, E_OUTOFMEMORY, and E_UNEXPECTED, as well as the following: -- snip -- </MSDN> また、一般的に HRESULT である以上、書かれている以外のエラーコードが 返る可能性(将来を含む)はあると思います。 HRESULT のルールは原則として、 0<=hr : 成功 hr < 0 : 失敗 なので、たいていの場合、S_OKだけを判定するのは間違いです。 # 実装上は、例えば S_OK:0, S_FALSE:1, E_FAIL:-1 などの値になってます。 個別の API に特に断りがない場合、単純な成否を見るときは、 SUCCEEDED または FAILED マクロを使うべきです。 <winerror.h> #define SUCCEEDED(Status) ((HRESULT)(Status) >= 0) #define FAILED(Status) ((HRESULT)(Status)<0) </winerror.h>
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.