编程时遇到未知的ErrorCode时,可以通过以下代码得到错误描述信息。
CComQIPtr < IErrorInfo > spErrInfo; // 声明 IErrorInfo 接口
::GetErrorInfo(0, &spErrInfo); // 取得接口
BSTR description;
spErrInfo->GetDescription(&description);
::SysFreeString(description);
题外注:
为了防止内存泄漏,com对象最好使用智能指针。
BSTR 对象使用后,需要调用::SysFreeString进行释放内存,否则也会产生内存泄漏。