Changeset 8347 for trunk/src/user32/winmouse.cpp
- Timestamp:
- Apr 30, 2002, 4:54:07 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/user32/winmouse.cpp
r7875 r8347 1 /* $Id: winmouse.cpp,v 1.2 2 2002-02-11 16:06:00sandervl Exp $ */1 /* $Id: winmouse.cpp,v 1.23 2002-04-30 14:54:06 sandervl Exp $ */ 2 2 /* 3 3 * Win32 mouse functions … … 49 49 ****************************************************************************/ 50 50 51 LPMOUSE_EVENT_PROC mouseHandler = NULL;52 WNDPROC keyboardHandler = NULL;53 54 55 //******************************************************************************56 //******************************************************************************57 VOID WIN32API MOUSE_Enable(LPMOUSE_EVENT_PROC lpMouseEventProc)58 {59 if(lpMouseEventProc == (LPMOUSE_EVENT_PROC)-1)60 mouseHandler = NULL;61 else62 mouseHandler = lpMouseEventProc;63 }64 //******************************************************************************65 //******************************************************************************66 VOID WIN32API KEYBOARD_Enable(WNDPROC handler)67 {68 keyboardHandler = handler;69 }70 //******************************************************************************71 //******************************************************************************72 BOOL DInputKeyBoardHandler(MSG *msg)73 {74 if(!ISKDB_CAPTURED())75 return FALSE;76 77 return keyboardHandler(msg->hwnd, msg->message, msg->wParam, msg->lParam);78 }79 //******************************************************************************80 //******************************************************************************81 BOOL DInputMouseHandler(HWND hwnd, ULONG msg, ULONG x, ULONG y)82 {83 WINE_MOUSEEVENT mouseEvent;84 DWORD dwFlags = MOUSEEVENTF_ABSOLUTE;85 86 if(!ISMOUSE_CAPTURED())87 return FALSE;88 89 mouseEvent.magic = WINE_MOUSEEVENT_MAGIC;90 mouseEvent.hWnd = hwnd;91 mouseEvent.time = OSLibWinQueryMsgTime();92 mouseEvent.keyState = 0; //not used in dinput right now93 switch(msg)94 {95 case WM_NCLBUTTONDOWN:96 case WM_LBUTTONDOWN:97 dwFlags |= MOUSEEVENTF_LEFTDOWN;98 break;99 case WM_NCLBUTTONUP:100 case WM_LBUTTONUP:101 dwFlags |= MOUSEEVENTF_LEFTUP;102 break;103 case WM_NCRBUTTONUP:104 case WM_RBUTTONUP:105 dwFlags |= MOUSEEVENTF_RIGHTUP;106 break;107 case WM_NCRBUTTONDOWN:108 case WM_RBUTTONDOWN:109 dwFlags |= MOUSEEVENTF_RIGHTDOWN;110 break;111 case WM_NCMBUTTONUP:112 case WM_MBUTTONUP:113 dwFlags |= MOUSEEVENTF_MIDDLEUP;114 break;115 case WM_NCMBUTTONDOWN:116 case WM_MBUTTONDOWN:117 dwFlags |= MOUSEEVENTF_MIDDLEDOWN;118 break;119 case WM_MOUSEMOVE:120 case WM_NCMOUSEMOVE:121 dwFlags |= MOUSEEVENTF_MOVE;122 break;123 default:124 //TODO: handle double clicks???125 return FALSE;126 }127 128 x = (((long)x << 16) + ScreenWidth-1) / ScreenWidth;129 y = (((long)y << 16) + ScreenHeight-1) / ScreenHeight;130 131 return mouseHandler(dwFlags, x, y, 0, (DWORD)&mouseEvent);132 }133 51 //****************************************************************************** 134 52 //****************************************************************************** … … 290 208 * Remark : 291 209 * Status : UNTESTED STUB 210 * TODO: call hooks!! 292 211 * 293 212 * Author : Patrick Haller [Thu, 1998/02/26 11:55]
Note:
See TracChangeset
for help on using the changeset viewer.