安装钩子问题
我做了一个对话框程序,但总是运行出错。请各位告诉帮忙指点下。
我的操作步骤是,在对话框的OnInitDialog函数中调用创建钩子是函数,代码如下:
/**
* 安装窗口消息过滤钩子
*/
void CSoftKeyBoardDlg::InstallMsgFilterHook()
{
if (g_hook == NULL)
{
g_hook = ::SetWindowsHookEx(WH_CALLWNDPROC ,MsgFilterHookProc,theApp.m_hInstance,NULL);
if (g_hook == NULL)
{
CString str;
str.Format(L"安装钩子 失败 error = %d ",GetLastError());
MessageBox(str);
}
}
}
MsgFilterHookProc函数代码如下:
/**
* 窗口消息过滤钩子的回调函数
*/
LRESULT CALLBACK /*CSoftKeyBoardDlg::*/MsgFilterHookProc(int nCode ,WPARAM wParam,LPARAM lParam)
{
if (g_hook == NULL)
{
return 0;
}
return CallNextHookEx(g_hook,nCode,wParam,lParam);
}
每次一运行就 出现异常,而且是很怪的异常,和explorer.exe关联起来 。
请各位高手指点,不生感激。