如何获得原型成员函数(C+;+;->;Javascript) 是否有人知道如何在C++中调用JavaScript中的原型方法?

如何获得原型成员函数(C+;+;->;Javascript) 是否有人知道如何在C++中调用JavaScript中的原型方法?,c++,com,atl,idispatch,C++,Com,Atl,Idispatch,我有一个指向脚本IDispatch的指针,我可以获取原型的IDsofName,但是我找不到如何获取其成员函数的IDispatch 说(伪代码): 我可以获得foo的有效DISPID,但我不知道如何调用bar(baz)。有人有想法吗?这就是为什么。对于每个函数,您不需要单独的IDispatch。但是,您确实需要一个DISPID为bar,因此需要一个IDispatch为foo。这意味着您必须调用iFoo->Invoke(DISPID_bar)和QueryInterface(IDispatch)结果。

我有一个指向脚本IDispatch的指针,我可以获取原型的IDsofName,但是我找不到如何获取其成员函数的IDispatch

说(伪代码):


我可以获得foo的有效DISPID,但我不知道如何调用
bar(baz)
。有人有想法吗?

这就是为什么。对于每个函数,您不需要单独的
IDispatch
。但是,您确实需要一个DISPID为
bar
,因此需要一个
IDispatch
foo
。这意味着您必须调用
iFoo->Invoke(DISPID_bar)
QueryInterface(IDispatch)
结果。

考虑到您有一个
IDispatch
,我假设是MSHTML。但是我没有一个foo的IDispatch,我不能调用0(Bar,Baz);我所拥有的只是整个脚本对象的IDispatch,我可以得到foo的DISPID。如何将DISPID转换为IDispatch?一般来说,您只需使用foo的DISPID执行PROPERTYGET即可获得foo的IDispatch。
JSprototype foo
{
    method bar(baz);
}