如何获得原型成员函数(C+;+;->;Javascript) 是否有人知道如何在C++中调用JavaScript中的原型方法?
我有一个指向脚本IDispatch的指针,我可以获取原型的IDsofName,但是我找不到如何获取其成员函数的IDispatch 说(伪代码):如何获得原型成员函数(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)结果。
我可以获得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);
}