急!调用带有out,retval参数的函数后如何获取HRESULT?

btman52 2014-04-11 04:22:33
某个函数签名为:

custom({XXXXXXXXXXX}, "method1")HRESULT _stdcall method1(
[in] BSTR str,
[out, retval] IUnknown** pRetVal);

调用这个函数后如何获取HRESULT?使用以下代码调用报错,提示函数不接受两个参数

hr=pobj->method1(bstr,&punk);

以下代码调用成功,但如何获取HRESULT??

punk=pobj->method1(bstr);
...全文
185 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
btman52 2014-04-22
  • 打赏
  • 举报
回复
非常感谢楼上两位,测试成功,结贴
  • 打赏
  • 举报
回复
试试
hr=pobj->raw_method1(bstr,&punk);
Yofoo 2014-04-21
  • 打赏
  • 举报
回复
C++的IDE自动生成了一些代码, pobj->method1 可以单步跟踪进去可以看到, 或导入Lib库时使用原始接口, 这样生成的代码可以直接调用原始的接口 (如#import 使用 raw_interfaces_only) 一般来说 HRESULT 不对, 这样调用会抛出异常, 捕获异常就知道返回值 HRESULT
oyljerry 2014-04-11
  • 打赏
  • 举报
回复
被pRetVal覆盖了。不然就要修改method

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧