none
BHO返回数据给javascript RRS feed

  • 问题

  • 各位,我用VC++开发一个bho程序,实现了用javascript调用C++的功能,但是COM里面的返回值都是HRESULT,就像下面那样:

    STDMETHODIMP CExtension::MyTestT(LONG lIndex, BSTR* pRet)
    {
        // TODO: 在此添加实现代码
        *pRet = ::SysAllocString(L"The javascript test for myself");
        return S_OK;
    }

    [id(16), helpstring("方法MyTestT")] HRESULT MyTestT([in] LONG lIndex, [in,out] BSTR* pRet);

    我在javascript中调用:

    <script type="text/javascript">
    function doTest()
    {
    var a = "123456";
    var b = 0;
    alert(Window.Test.MyTestT(123, a));
    alert(a);
    }
    </script>

    其中Test已经作为一个属性注入到浏览器窗口。我现在想在COM接口中返回一个字符串给javascript,或者在COM接口中改变a的值,传出来给javascript。貌似用C#可以直接返回string类型的,C++不行,我又不想用C#。请问该如何实现,谢谢各位。

    2015年12月9日 8:26

答案