MyAbcCP.h
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:1k
源码类别:

ActiveX/DCOM/ATL

开发平台:

Visual C++

  1. #ifndef _MYABCCP_H_
  2. #define _MYABCCP_H_
  3. template <class T>
  4. class CProxy_IAbcEvents : public IConnectionPointImpl<T, &DIID__IAbcEvents, CComDynamicUnkArray>
  5. {
  6. //Warning this class may be recreated by the wizard.
  7. public:
  8. HRESULT Fire_WriteLog(BSTR msge)
  9. {
  10. CComVariant varResult;
  11. T* pT = static_cast<T*>(this);
  12. int nConnectionIndex;
  13. CComVariant* pvars = new CComVariant[1];
  14. int nConnections = m_vec.GetSize();
  15. for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
  16. {
  17. pT->Lock();
  18. CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
  19. pT->Unlock();
  20. IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
  21. if (pDispatch != NULL)
  22. {
  23. VariantClear(&varResult);
  24. pvars[0] = msge;
  25. DISPPARAMS disp = { pvars, NULL, 1, 0 };
  26. //writeLog给函数pDispatch->Invoke()相关
  27. pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL);
  28. }
  29. }
  30. delete[] pvars;
  31. return varResult.scode;
  32. }
  33. };
  34. #endif