问个问题,关于属性的

JianjunWong 2003-10-16 09:51:38
我用ATL写的一个activex,加入了一个接口。我要得到里面的一个属性值。
idl中是
[propget, id(1), helpstring("property pResultArray")] HRESULT pResultArray([out, retval] VARIANT *pVal);
cpp中是
STDMETHODIMP CclsDivideCard::get_pResultArray(VARIANT *pVal)
也就是返回的是VARIANT类型的。我想问返回的是一个指针吗?应该是一个VARIANT吧。
只不过用[out, retval]的话就要返回指针。那么这个VARIANT结构应该怎么构造啊?
在堆里还是栈里??我是这么构造的。
VARIANT a;
////
把a赋值,处理
////
*pVal = a;
return S_OK;
大家看看这么构造对吗???
还是应该
VARIANT *b = new VARIANT;
//////
把b指向的VARIANT赋值
//////
pVal = b;
return S_OK;
不知道应该是那种方法??问问大家,希望不吝赐教。
谢谢


另外返回的VARIANT中是一个数组。
数组SAFEARRAY是用SafeArrayCreate构造的,然后返回VARIANT
那么SafeArrayCreate申请的内存能返回回来吗??好像构造函数没有深拷贝吧。
...全文
29 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
JianjunWong 2003-10-16
  • 打赏
  • 举报
回复
最后一句说错了,好像结构体(VARIANT)没有深拷贝吧

3,245

社区成员

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

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