ChangeWindowMessageFilter に関する技術資料

DLL などで他のアプリケーションからメッセージを受け取るためのフィルタ機能が、 Windows Vista 以降には存在します。

HP Mouse Suite 2.3 を Windows XP や Vista にインストール

関連する定義

#define MSGFLT_ADD 1
#define MSGFLT_REMOVE 2

typedef DWORD(WINAPI *VISTAMSGFILTER)(DWORD,DWORD);
VISTAMSGFILTER pCWMF;
DWORD WM_MTEST1=RegisterWindowMessage("test1");
DWORD WM_MTEST2=RegisterWindowMessage("test2");
HMODULE hDll=LoadLibrary("user32.dll");
if(hDll){
//XP以前ではこの関数の取得に失敗するので実行されない
    pCWMF=(VISTAMSGFILTER)GetProcAddress
        (hDll,"ChangeWindowMessageFilter");
    if(pCWMF){
        pCWMF(WM_MTEST1,MSGFLT_ADD);
        pCWMF(WM_MTEST2,MSGFLT_ADD);
    }
    FreeLibrary(hDll);
}

うにゃー、なんか面倒ですね。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です