<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í)真正的函數(shù)運(yùn)行結(jié)果則通過參數(shù)指針返回。如果遇到了異常情況,則COM系統(tǒng)經(jīng)過判斷,會(huì)返回相應(yīng)的錯(cuò)誤值。

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

    HRESULT 其實(shí)是一個(gè)雙字節(jié)的值,其最高位(bit)如果是0表示成功,1表示錯(cuò)誤。具體參見 MSDN 之"Structure of COM Error Codes"說明。我們?cè)诔绦蛑腥绻枰袛喾祷刂担瑒t可以使用比較運(yùn)算符號(hào);switch開關(guān)語(yǔ)句;也可以使用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 錯(cuò)誤
    自定義標(biāo)記(29) 反映結(jié)果是否為自定義標(biāo)識(shí),1 為是,0 則不是;
    操作碼 (16-28) 標(biāo)識(shí)結(jié)果操作來源,在 Windows 平臺(tái)上,其定義如下:
                    #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í)行失敗,失敗原因?yàn)閮?nèi)存分配不成功
                    E_NOTIMPL       函數(shù)執(zhí)行失敗,成員函數(shù)沒有被實(shí)現(xiàn)
                    E_NOTINTERFACE  函數(shù)執(zhí)行失敗,組件沒有實(shí)現(xiàn)指定的接口

    不能簡(jiǎn)單地把返回值與 S_OK 和 S_FALSE 比較,而要用 SECCEEDED 和 FAILED 宏進(jìn)行判斷。

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

    常用鏈接

    留言簿(21)

    隨筆分類(265)

    隨筆檔案(242)

    相冊(cè)

    JAVA網(wǎng)站

    關(guān)注的Blog

    搜索

    •  

    積分與排名

    • 積分 - 914554
    • 排名 - 40

    最新評(píng)論

    主站蜘蛛池模板: 香蕉97超级碰碰碰免费公| 黄色大片免费网站| 亚洲欧洲国产视频| 亚洲高清美女一区二区三区| 午夜影视日本亚洲欧洲精品一区| 日韩亚洲一区二区三区| 亚洲国产精品va在线播放| 亚洲AV无一区二区三区久久| 亚洲情a成黄在线观看动漫尤物| 亚洲第一成年男人的天堂| 亚洲AV日韩AV永久无码免下载| 久久亚洲精品成人综合| 亚洲午夜未满十八勿入| 亚洲经典在线观看| 亚洲国产美女在线观看| 亚洲永久网址在线观看| 亚洲国产成人手机在线观看| 国产天堂亚洲精品| 国产A∨免费精品视频| 99久久免费国产特黄| 久久一区二区三区免费播放 | 亚洲欧洲日韩在线电影| 亚洲国产精品yw在线观看| 亚洲高清有码中文字| 在线观看免费亚洲| 一级毛片免费在线观看网站| 国产拍拍拍无码视频免费| 18禁美女裸体免费网站| 成人a免费α片在线视频网站| 人人狠狠综合久久亚洲高清| 国产亚洲人成A在线V网站 | 黄a大片av永久免费| 免费人成视频在线观看不卡| 亚洲乱码中文字幕久久孕妇黑人| 91精品国产亚洲爽啪在线影院| 亚洲精品伊人久久久久| 日本特黄特色AAA大片免费| a级男女仿爱免费视频| 四虎永久在线精品免费观看视频| 国产免费观看视频| 国产精一品亚洲二区在线播放|