exCP.h
上传用户:weisheen
上传日期:2022-07-09
资源大小:19390k
文件大小:1k
- #ifndef _EXCP_H_
- #define _EXCP_H_
- template <class T>
- class CProxy_IMyabcEvents : public IConnectionPointImpl<T, &DIID__IMyabcEvents, CComDynamicUnkArray>
- {
- //Warning this class may be recreated by the wizard.
- public:
- HRESULT Fire_add(BSTR msg)
- {
- CComVariant varResult;
- T* pT = static_cast<T*>(this);
- int nConnectionIndex;
- CComVariant* pvars = new CComVariant[1];
- int nConnections = m_vec.GetSize();
-
- for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
- {
- pT->Lock();
- CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
- pT->Unlock();
- IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
- if (pDispatch != NULL)
- {
- VariantClear(&varResult);
- pvars[0] = msg;
- DISPPARAMS disp = { pvars, NULL, 1, 0 };
- pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL);
- }
- }
- delete[] pvars;
- return varResult.scode;
-
- }
- };
- #endif