BCB在COM中如何处理javascript脚本传递的数组

jaffy 2009-03-10 12:16:30
加精
网上都是VC版本的,再就是VBSCRIPT脚本的比较多,我一直用JAVASCRIPT,所以一直想写一个
最近刚刚解决了这个问题,看见BCB的帖子上了头版,我也来分享一下,高手们多提点意见。

//枚举类型转换成数组
HRESULT VariantEnumToDoubles(IDispatch* disp,double *&dArray,int &length)
{
CComVariant resultV;
HRESULT hr;
DISPPARAMS noArgs = {NULL,NULL,0,0};
hr = disp->Invoke(DISPID_NEWENUM,IID_NULL,
LOCALE_SYSTEM_DEFAULT,DISPATCH_PROPERTYGET,
&noArgs,&resultV,NULL,NULL);

if(resultV.vt != VT_UNKNOWN && resultV.vt != VT_DISPATCH)
return DISP_E_BADPARAMCOUNT;

CComQIPtr <IEnumVARIANT> pEnum(resultV.punkVal);

length = 0;

hr =S_OK;

while(hr == S_OK)
{
hr = pEnum->Skip(1);
if(hr == S_OK)
length++;
}

dArray = new double[length];
int nCount = 0;

CComVariant elemV;

pEnum->Reset();
hr = S_OK;

while(hr == S_OK)
{
hr = pEnum->Next(1,&elemV,NULL);
if(elemV.vt !=VT_R8 && elemV.vt !=VT_I4)
{
hr =S_FALSE;
}
else if(elemV.vt == VT_I4)
{
int itmp = elemV.intVal;
dArray[nCount] = itmp;
}
else if(elemV.vt == VT_R8)
{
double dtmp = elemV.dblVal;
dArray[nCount] = dtmp;
}
if(hr == S_OK)
nCount++;
}
return S_OK;
}
//=============================================================

...全文
1238 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
sjdfsjdf 2012-09-02
  • 打赏
  • 举报
回复
虽然不懂,先MARK一下
chinayu2007 2012-02-22
  • 打赏
  • 举报
回复
怎么调用这个函数呢?给个示例吧
cc_user 2011-04-24
  • 打赏
  • 举报
回复
mark~
w88529593 2010-07-29
  • 打赏
  • 举报
回复
学习……
a395083016 2009-03-13
  • 打赏
  • 举报
回复
来了
liberpc 2009-03-13
  • 打赏
  • 举报
回复
我学我顶
a1b1c11 2009-03-12
  • 打赏
  • 举报
回复
楼主 给我说说 C/C++ 对COM口 开发。 有资料更好! 给我一份 snxkuser@163.com
hemiya 2009-03-12
  • 打赏
  • 举报
回复
学习
youyouzui 2009-03-12
  • 打赏
  • 举报
回复
路过 顶一下啊。。。
laowang2 2009-03-12
  • 打赏
  • 举报
回复
xabcxyz 2009-03-12
  • 打赏
  • 举报
回复
学习
darkfox123 2009-03-12
  • 打赏
  • 举报
回复
我倒是一直在研究c 来调用ActiveX 目的是使用 汇编来调用 ActiveX 几近完成.
不过,现在忽然开始困惑了,将来windows的发展会是怎样的,我研究这个还有意义吗?
困惑
jiangdan19881101 2009-03-11
  • 打赏
  • 举报
回复
DING
cnlong 2009-03-11
  • 打赏
  • 举报
回复
ding
ccrun.com 2009-03-11
  • 打赏
  • 举报
回复
好,我来推荐到首页。
oyljerry 2009-03-11
  • 打赏
  • 举报
回复
^_^,赞...
jaffy 2009-03-11
  • 打赏
  • 举报
回复
谢谢楼上各位
ydlchina 2009-03-10
  • 打赏
  • 举报
回复
帖子该加
  • 打赏
  • 举报
回复
不错不错
加载更多回复(1)

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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