HRESULT Fire_Computation()
{
HRESULT hr = S_OK;
T * pThis = static_cast<T *>(this);
1 int cConnections = m_vec.GetSize();2 for (int iConnection = 0; iConnection < cConnections; iConnection++)
{
pThis->Lock();
CComPtr<IUnknown> punkConnection = m_vec.GetAt(iConnection);
pThis->Unlock(); IDispatch * pConnection = static_cast<IDispatch *>(punkConnection.p); if (pConnection)
{
CComVariant varResult; DISPPARAMS params = { NULL, NULL, 0, 0 };
hr = pConnection->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &params, &varResult, NULL, NULL);
}
}
return hr;
}
经过调试发现 断点1的位置得到 cConnections =0 所以2以下的代码得不到执行。
怎么回事呢 这是

解决方案 »

  1.   

    对应的 代码为 <object id="ATL" classid="CLSID:26C1B155-4FCE-4E6F-9579-0804476E93F7" VIEWASTEXT>
    </object>
    <script>
    1 ATL.SendFile("dsdsds","dsdsdsd");
    </script>
    2 <script language="javascript" for="ATL" event="Computation()">
    alert("你好");
    </script>
    并且以可以得到正确执行 我在组件里头是在 SendFile里面触发 Fire_Computation();
    但是 2得不到执行 为什么啊
      

  2.   

    http://topic.csdn.net/t/20050621/16/4097216.html
      

  3.   

    int cConnections = m_vec.GetSize();  //这里cConnections > 0?
    for (int iConnection = 0; iConnection < cConnections; iConnection++) //这里cConnections <= 0?
      

  4.   

    楼上的   CConnections=0 所以下面的代码得不到执行啊
      

  5.   

    楼上的  能帮忙给一段 成功响应的脚本吗 
    我的是这样的,,。。
    <object id="ATL" classid="CLSID:26C1B155-4FCE-4E6F-9579-0804476E93F7" VIEWASTEXT>
    </object>
    <script language="javascript" event="Computation()">
    function ATL::Computation()
    {
         alert("事件响应");
    }
    </script>