【初心者歓迎】C/C++室 Ver.28【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0088デフォルトの名無しさん
2006/06/12(月) 00:00:35LRESULT CALLBACK CHook::CBTProc(int p_nCode, WPARAM p_wParam, LPARAM p_lParam)
{
// 処理してはいけないメッセージなので、次へ渡す
if( p_nCode < 0 || p_nCode == HC_NOREMOVE)
return ::CallNextHookEx( m_hHook, p_nCode, p_wParam, p_lParam );
if( p_nCode == HCBT_ACTIVATE ) // ここがアクティブウィンドウが発生したときの処理
TRACE0(_T("アクティブ化\n"));
return ::CallNextHookEx( m_hHook, p_nCode, p_wParam, p_lParam );// 次のフックへと繋げる
}
また、このフックハンドルや必要な変数はグローバルにし、他とかぶらないようにしてあります。
#pragma data_seg( ".CKHookData" )
HHOOKCHook::m_hHook = NULL;
#pragma data_seg()
この状態で使用すると、フックを呼び出したウィンドウがアクティブになったときにしか反応しません。
これではローカルフックと変わりません。
いろいろ試してはみたのですがどうにも・・・どなたかわかる方、ご教授願います。
MFCアプリで使用するので、DLLはMFC DLL の拡張モードで作成してあります。
■ このスレッドは過去ログ倉庫に格納されています