#include <iostream>
#include <windows.h>HINSTANCE g_hInstance = NULL;    //模块实例句柄
HHOOK  g_hHook = NULL;     // 钩子句柄LRESULT CALLBACK MouseProc( int nCode, WPARAM wParam, LPARAM lParam )
{
LPMOUSEHOOKSTRUCT pMouseHook=(MOUSEHOOKSTRUCT FAR *) lParam;
if ( nCode >= 0 )
{
HDC hdc;
LPPOINT curPoint;
if ( wParam == WM_NCRBUTTONDOWN || wParam == WM_RBUTTONDOWN )
{
                        ::MessageBeep( MB_OK );  //只听见了一次声音
HWND hwnd = ::GetForegroundWindow();
::MessageBox ( hwnd, "您单击了鼠标右键", "注意", MB_OK );  //确看到了16个对话框
}

}
return 1;//已经处理
}__declspec ( dllexport ) BOOL __stdcall StartHook()
{
g_hHook = ::SetWindowsHookEx( WH_MOUSE, MouseProc, ::GetModuleHandle( "MouseHook"), 0 );  //Global Hook

if ( g_hHook != NULL )
{
::MessageBox ( NULL, "屏蔽成功,按空格退出此提示。", "注意", MB_OK );
return TRUE;
}
::MessageBox ( hwnd, "屏蔽失败.", "注意", MB_OK );
return FALSE;
}__declspec ( dllexport ) BOOL __stdcall StopHook()
{
if (::UnhookWindowsHookEx( g_hHook ) )
{
::MessageBox ( hwnd, "解锁成功.", "注意", MB_OK );
return TRUE;
} ::MessageBox ( hwnd, "解锁失败, 可以调用任务管理器,结束本程序,进而解锁!", "注意", MB_OK );
return FALSE;
}