Windows API 回调函数在com里怎么用 我想把pppoe拨号功能封装到activex里 用IE做程序界面 实现pppoe功能但是WINAPI RasDialFunc是个回调函数 是实时返回整个连接的动作因为是回调函数 它不能是类成员函数 没法使用连接点返回信息给IE恳求大神们赐教!!!谢谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 最简单的办法是 弄个全局指针保存activex的对象.. 没玩过感觉应该搞个source-sink,把RasDialFunc封装在source里,Callback时fire sink做个Functor也许也是可行的,重载Operator()(....),把Functor传给windows不知道会不会买账 template<class T>class CProxy_IpppoeEvents : public IConnectionPointImpl<T, &__uuidof(_IpppoeEvents)>{public: HRESULT Fire_text() { HRESULT hr = S_OK; T * pThis = static_cast<T *>(this); int cConnections = m_vec.GetSize(); 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) { DISPPARAMS params = { NULL, NULL, 0, 0 }; //没有红 hr = pConnection->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL); } } return hr; }};上面的Invoke函数返回E_UNEXPECTED 错误 何解? 既然对PPPOE封装了一层,也同样可以对回调封装一层,回调函数在控件内部实现,在实现中去调用控件的连接点接口实现COM方式的回调 回调函数只能是静态函数 不知道怎么封装 按照akirya老大的方法 返回错误 不知道什么情况 谁能给讲一下键盘钩子使用WH_KEYBOARD和WH_KEYBOARD_LL的区别 请教:如何取得当前新创建的Excel进程ID 怪哉!!! 对话框最大化显示后居然是这样的 请教关于CTreeCtrl控件使用的问题??? Office组件绘图的问题 实时曲线绘制 --> 有谁能帮我解决一下,300分相送 建立空文档失败 如何解决 进行ARP欺骗时,系统提示IP地址冲突信息,怎样把该对话框屏蔽掉 vc绘图的问题!!请各位大侠帮帮忙.谢谢!急! 古怪问题 请问VC如何定义缺省参数呢? 如操作一个指向vector的指针
感觉应该搞个source-sink,把RasDialFunc封装在source里,Callback时fire sink
做个Functor也许也是可行的,重载Operator()(....),把Functor传给windows不知道会不会买账
class CProxy_IpppoeEvents :
public IConnectionPointImpl<T, &__uuidof(_IpppoeEvents)>
{
public:
HRESULT Fire_text()
{
HRESULT hr = S_OK;
T * pThis = static_cast<T *>(this);
int cConnections = m_vec.GetSize(); 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)
{
DISPPARAMS params = { NULL, NULL, 0, 0 }; //没有红
hr = pConnection->Invoke(1, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, ¶ms, NULL, NULL, NULL);
}
}
return hr;
}
};上面的Invoke函数返回E_UNEXPECTED 错误 何解?