none
请教一个在DLL线程中访问与COM的问题 RRS feed

  • 常规讨论

  • 环境:Visual Studio 2008 SP1
    ATL项目类型:ATL简单对象
    描述:
        在一个ATL简单对象中需要用到一个封装好的DLL,DLL提供了一个接口类INetCallBack来与其交互。DLL的内部将会创建一个线程,并在线程中调用INetCallBack的方法。
        在我创建的ATL简单对象中实现了INetCallBack类的相关虚函数,并在其中的一个虚函数OnInvokeOk()函数中通过IDispatchEx调用一个JS。我想问一下在不改变DLL模块的前提下有没有办法在OnInvokeOk()函数中成功调用JS。
        另外,我需要在INetCallBack的所有虚函数中回调我的ATL里面的函数,所以需要将MyATL接品存储起来多次使用。

        我试过GIT的方法,在开始调用DLL模块前创建一个Global Interface Table(GIT),然后在OnInvokeOk()中从GIT中获取接口,GetInterfaceFromGlobal(gdwCookie, IID_IMyATL, (LPVOID*)&pTest);但是失败了。GetInterfaceFromGlobal这个函数调用总是失败。
    2009年11月7日 2:56