FAILED宏 和 SUCCEEDED宏 的使用细节

#include <windows.h>
#include <tchar.h>
#include <string>

/// FAILED宏 和 SUCCEEDED宏 的使用细节

/// 为了使用 FAILED(hr) 或 SUCCEEDED(hr) 宏
/// hr值的选用注意事项: 
/// 成功时,可以选用 S_OK
/// 失败时, 不能选用 S_FALSE, 而要选用 E_XX, e.g. E_FAIL
/// 因为 SUCCEEDED(S_FALSE) 也是成功的
int main(
    HINSTANCE  hInstance,
    HINSTANCE  hPrevInstance,  
    LPSTR  lpszCmdLine,
    int  nCmdShow )
{ 
    HRESULT hr = E_FAIL;// S_OK, S_FALSE, E_FAIL;

    if (FAILED(hr))
        _tprintf(L"FAILED(hr)\r\n");
    else if (SUCCEEDED(hr))
        _tprintf(L"SUCCEEDED(hr)\r\n");

    /** run result

    when HRESULT hr = S_OK
    disp SUCCEEDED(hr)

    when HRESULT hr = S_FALSE;
    disp SUCCEEDED(hr)

    when HRESULT hr = E_FAIL;
    disp FAILED(hr)

    */

    getwchar();
    return 0; 
}

 

posted @ 2017-10-16 21:34  微笑的''80  阅读(515)  评论(0)    收藏  举报