<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    HRESULT返回值說明 如果函數(shù)正常執(zhí)行,則返回 S_OK,同時真正的函數(shù)運行結(jié)果則通過參數(shù)指針返回。如果遇到了異常情況,則COM系統(tǒng)經(jīng)過判斷,會返回相應(yīng)的錯誤值。

    HRESULT         值          含義
    S_OK            0x00000000  成功
    S_FALSE         0x00000001  函數(shù)成功執(zhí)行完成,但返回時出現(xiàn)錯誤
    E_INVALIDARG    0x80070057  參數(shù)有錯誤
    E_OUTOFMEMORY   0x8007000E  內(nèi)存申請錯誤
    E_UNEXPECTED    0x8000FFFF  未知的異常
    E_NOTIMPL       0x80004001  未實現(xiàn)功能
    E_FAIL          0x80004005  沒有詳細說明的錯誤。一般需要取得 Rich Error 錯誤信息(注1)
    E_POINTER       0x80004003  無效的指針
    E_HANDLE        0x80070006  無效的句柄
    E_ABORT         0x80004004  終止操作
    E_ACCESSDENIED  0x80070005  訪問被拒絕
    E_NOINTERFACE   0x80004002  不支持接口

    HRESULT 其實是一個雙字節(jié)的值,其最高位(bit)如果是0表示成功,1表示錯誤。具體參見 MSDN 之"Structure of COM Error Codes"說明。我們在程序中如果需要判斷返回值,則可以使用比較運算符號;switch開關(guān)語句;也可以使用VC提供的宏:
         HRESULT hr = 調(diào)用組件函數(shù);
          if( SUCCEEDED( hr ) ){...} // 如果成功
          ......
          if( FAILED( hr ) ){...} // 如果失敗
          ......

    大多數(shù) COM 函數(shù)以及一些接口成員函數(shù)的返回值類型均為 HRESULT 類型。HRESULT 類型的返回值反映了函數(shù)中的一些情況,其類型定義規(guī)范如下:

       31 30 29 28                    16 15                                0
      |-----|--|------------------------|-----------------------------------|

    類別碼 (30-31) 反映函數(shù)調(diào)用結(jié)果:
                    00 調(diào)用成功
                    01 包含一些信息
                    10 警告
                    11 錯誤
    自定義標記(29) 反映結(jié)果是否為自定義標識,1 為是,0 則不是;
    操作碼 (16-28) 標識結(jié)果操作來源,在 Windows 平臺上,其定義如下:
                    #define FACILITY_WINDOWS         8
                    #define FACILITY_STORAGE         3
                    #define FACILITY_RPC             1
                    #define FACILITY_SSPI            9
                    #define FACILITY_WIN32           7
                    #define FACILITY_CONTROL         10
                    #define FACILITY_NULL            0
                    #define FACILITY_INTERNET        12
                    #define FACILITY_ITF             4
                    #define FACILITY_DISPATCH        2
                    #define FACILITY_CERT            11
    操作結(jié)果碼(0-15) 反映操作的狀態(tài),WinError.h 定義了 Win32 函數(shù)所有可能返回結(jié)果。
                    以下是一些經(jīng)常用到的返回值和宏定義:
                    S_OK            函數(shù)執(zhí)行成功,其值為 0 (注意,其值與 TRUE 相反)
                    S_FALSE         函數(shù)執(zhí)行成功,其值為 1
                    S_FAIL          函數(shù)執(zhí)行失敗,失敗原因不確定
                    E_OUTOFMEMORY   函數(shù)執(zhí)行失敗,失敗原因為內(nèi)存分配不成功
                    E_NOTIMPL       函數(shù)執(zhí)行失敗,成員函數(shù)沒有被實現(xiàn)
                    E_NOTINTERFACE  函數(shù)執(zhí)行失敗,組件沒有實現(xiàn)指定的接口

    不能簡單地把返回值與 S_OK 和 S_FALSE 比較,而要用 SECCEEDED 和 FAILED 宏進行判斷。

    posted on 2010-01-04 10:00 -274°C 閱讀(6129) 評論(0)  編輯  收藏 所屬分類: C++

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊

    JAVA網(wǎng)站

    關(guān)注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914351
    • 排名 - 40

    最新評論

    主站蜘蛛池模板: 又大又硬又爽免费视频| 中文字幕无码精品亚洲资源网| 少妇无码一区二区三区免费| 最近中文字幕免费2019| 成年女人免费视频播放77777 | 色欲A∨无码蜜臀AV免费播| 国产AV无码专区亚洲AVJULIA| 亚洲欧洲精品在线| 一区二区三区免费视频网站| 2021在线永久免费视频| 亚洲成AV人在线观看网址| 亚洲精品影院久久久久久| 波多野结衣免费在线| 亚洲熟妇无码乱子AV电影| 天堂亚洲国产中文在线| 国产午夜精品久久久久免费视 | 国产乱子伦片免费观看中字| 久久精品蜜芽亚洲国产AV| 美女被免费网站在线视频免费| 99爱在线精品视频免费观看9| 国产偷窥女洗浴在线观看亚洲| 你好老叔电影观看免费| 在线免费观看国产视频| 亚洲二区在线视频| 日本免费高清视频| 亚洲精品乱码久久久久久蜜桃不卡| 国产亚洲精品国产福利在线观看| 久久成人国产精品免费软件| 亚洲av中文无码乱人伦在线r▽ | 91视频免费观看高清观看完整| 亚洲AV无码成人专区片在线观看| av大片在线无码免费| 阿v免费在线观看| 久久久久亚洲AV成人无码| 国产在线精品一区免费香蕉| 亚洲国产中文在线视频| 亚洲国产精品无码久久青草| 57pao一国产成永久免费| 猫咪免费人成网站在线观看入口 | 国产精品亚洲va在线观看 | 亚洲AV无码精品蜜桃|