请教COM Interop时com::ptr的用法....

soilwork 2009-12-22 04:39:34
用C++/CLI包装com对象,如果com声明为com::ptr类型,作为函数参数传递的时候要怎么写呢
msdn里说:
A com::ptr cannot be used directly as a function parameter; use a % (Tracking Reference) or a handle (^) instead.
A com::ptr cannot be directly returned from a function; use a handle instead.
不是太明白,求高手解释一下,比如有

com::ptr<ITfDocumentMgr> documentManager;
HRESULT AssociateFocus(HWND hwnd,ITfDocumentMgr* pdimNew,ITfDocumentMgr** ppdimPrev);

AssociateFocus的后两个参数应该怎么写?

第一次用C++/CLI,问题多多啊:(
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuizhiyun 2010-11-04
  • 打赏
  • 举报
回复
另,不要申明智能指针,直接申明为裸指针试试
shuizhiyun 2010-11-04
  • 打赏
  • 举报
回复
用IUnKnown试试
真相重于对错 2009-12-22
  • 打赏
  • 举报
回复
msdn search com 自定义封送处理
soilwork 2009-12-22
  • 打赏
  • 举报
回复
我要用的dll,tlbimp认不出来,不能自动wrap,完全用C#手动映射量太大
用c++/cli import好像还方便点
真相重于对错 2009-12-22
  • 打赏
  • 举报
回复
com 可以直接被.net 直接引用,为什么还要用c++/cli包装?

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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