[求助]调用函数返回值hresult,遇到疑问,帮忙
调用一个函数,它的返回值为hresult类型,我判断E_FAIL == hr,结果没有输出,我如果E_FAIL & hr ,就输出来,问题是每个错误情况都输出来或者都不输出来,汗啊我的代码如下:
hr = pIWMDMStorageControl->Insert(
WMDM_MODE_BLOCK | WMDM_STORAGECONTROL_INSERTINTO | WMDM_CONTENT_FILE,
L"E:\amani.wma" ,
NULL, NULL,
&pIStorage);
if SUCCEEDED(hr)//这个没有输出,就是这个函数没有调用成功,这是系统的宏。
wprintf(L"The method Succeeded\n");
if(WMDM_E_INTERFACEDEAD & hr)
printf("The file was previously deleted.\n");
if(WMDM_E_NORIGHTS & hr)
printf("The caller has no rights to insert.\n");
if(E_INVALIDARG & hr)
printf("Some of the parameters are invalid or null.\n");
if(E_FAIL & hr)
printf("An unspecified error occurred.\n");
if(WMDM_E_NOTCERTIFIED & hr)
printf("The caller is not certified.\n");
if(WMDM_E_MAC_CHECK_FAILED & hr)
printf("The message authentication check failed.\n");
下面的六个都会输出,如果换成==判断,结果都不输出,我怎样判断是什么错误呢?郁闷中,各位支招,先谢。
补充一点,关于hresult返回值的判断,我以前用过是用==判断,结果是有输出的,这里不懂为什么
题外话:
唉,写了不多点程序,被打击坏了,动不动一个疑难杂症,受不了,编程真的好痛苦