javascrip for 语句访问Idispatch 对应的过程是什么

hbs_biscuit CSDN会员 hbs_biscuit 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我在javascript 中想用 FOR 语句循环找到 activex 公布出来的 DISPATCH 接口数据

从 javascript 中传入 对象数组的过程如下:
var oParams=new Object();
oParams["LoginName"]="test";
oParams["Password"]="123";
oParams["VerifyCode"]="12PQ";
TestActiveX.SendMsg("test",oParams);

activex 中定义的方法如下:
[id(7)] long SendMsg(BSTR TYPE, VARIANT Name);
long CInfoTCtrl::SendMsg(LPCTSTR TYPE, const VARIANT FAR& Name)

现在需要ACTIVEX 公开一个事件:
[id(1)] void RecvMsg(BSTR TYPE, VARIANT* Name);
void FireRecvMsg(LPCTSTR TYPE, VARIANT FAR* Name)
{FireEvent(eventidRecvMsg,EVENT_PARAM(VTS_BSTR VTS_PVARIANT ), TYPE, Name);}

然后在JAVASCRIPT 中接收:
<script language="JavaScript1.2" for="TestActiveX" event="RecvMsg(sTYPE,Msg)">
var ocx=sTYPE;
alert("sTYPE : "+ocx) ;

for(prop in Msg)
{
alert("event :"+prop+"="+Msg[prop]);
}

如果我直接在 ACTIVEX 中sendmsg 中调用 FireRecvMsg 是可以成功的,JAVASCRIP 这边也可以正常接收到,
但是现在的问题是我需要在ACTIVEX 的其他函数中实现 调用FireRecvMsg 的功能,但是当JAVASCRIPT 运行到
for(prop in Msg)
这一行的时候报错“对象不支持此属性和方法”
根据上一贴
http://topic.csdn.net/u/20080418/12/3c09eb2c-fbb4-419f-8a6e-50d78ba8ff2d.html
蒋老大的指示,我的对象继承了 IdispatchEx 的所有接口方法,但是似乎JAVASCRIPT 就没有调用我实现的方法,现在有些迷惑,到底JAVASCRIP 解析 for 语句的时候做了一些什么动作呢,这个过程是怎么样的?

恳求蒋老大给指点一下,各路神仙有知道的也给支个招,
多谢!!!!
...全文
评论 5
收藏 已收藏
分享
返回顶部
hbs_biscuit CSDN会员
ATL 3,248 成员 48,530 内容