📄 cpatlcontrol.h
字号:
//////////////////////////////////////////////////////////////////////////////// CProxy_DATLControlWintemplate <class T>class CProxy_DATLControlWin : public IConnectionPointImpl<T, &DIID__DATLControlWin, CComDynamicUnkArray>{public://methods://_DATLControlWin : IDispatchpublic: void Fire_Change( BSTR * bstrCaption, long * lAlignment) { VARIANTARG* pvars = new VARIANTARG[2]; for (int i = 0; i < 2; i++) VariantInit(&pvars[i]); T* pT = (T*)this; pT->Lock(); IUnknown** pp = m_vec.begin(); while (pp < m_vec.end()) { if (*pp != NULL) { pvars[1].vt = VT_BSTR | VT_BYREF; pvars[1].byref= bstrCaption; pvars[0].vt = VT_I4 | VT_BYREF; pvars[0].byref= lAlignment; DISPPARAMS disp = { pvars, NULL, 2, 0 }; IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp); pDispatch->Invoke(0x1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL); } pp++; } pT->Unlock(); delete[] pvars; } void Fire_ReadyStateChange() { T* pT = (T*)this; pT->Lock(); IUnknown** pp = m_vec.begin(); while (pp < m_vec.end()) { if (*pp != NULL) { DISPPARAMS disp = { NULL, NULL, 0, 0 }; IDispatch* pDispatch = reinterpret_cast<IDispatch*>(*pp); pDispatch->Invoke(DISPID_READYSTATECHANGE, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, NULL, NULL, NULL); } pp++; } pT->Unlock(); }};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -