ReactOS  0.4.15-dev-1374-g8d3e80e
TrackMouseEvent.c File Reference
#include "precomp.h"
Include dependency graph for TrackMouseEvent.c:

Go to the source code of this file.

Macros

#define FLUSH_MESSAGES(expected, notexpected)
 
#define EXPECT_TME_FLAGS(hWnd, expected)
 
#define MOVE_CURSOR(x, y)
 

Functions

static int get_iwnd (HWND hWnd)
 
LRESULT CALLBACK TmeTestProc (HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK MouseLLHookProc (int nCode, WPARAM wParam, LPARAM lParam)
 
static LRESULT CALLBACK MouseHookProc (int nCode, WPARAM wParam, LPARAM lParam)
 
static void FlushMessages ()
 
static void create_test_windows ()
 
static void destroy_test_window ()
 
static void TmeStartTracking (HWND hwnd, DWORD Flags)
 
DWORD TmeQuery (HWND hwnd)
 
void Test_TrackMouseEvent ()
 
 START_TEST (TrackMouseEvent)
 

Variables

HWND hWnd1
 
HWND hWnd2
 
HWND hWnd3
 
HHOOK hMouseHookLL
 
HHOOK hMouseHook
 
int ignore_timer = 0
 
int ignore_mouse = 0
 
int ignore_mousell = 0
 
MSG_ENTRY mousemove2_chain []
 
MSG_ENTRY mousehover2_chain []
 
MSG_ENTRY mouseleave2to1_chain []
 
MSG_ENTRY mouseleave2to3_chain []
 
MSG_ENTRY mousehover3_chain []
 
MSG_ENTRY mousehover3_nomove_chain []
 
MSG_ENTRY mousehover3_droptimer_chain []
 
MSG_ENTRY mousehover3_dropmouse_chain []
 
MSG_ENTRY mousehover3_dropmousell_chain []
 
MSG_ENTRY mouseleave3to2_dropmouse_chain []
 
MSG_ENTRY mouseleave3to2_dropmousell_chain []
 
MSG_ENTRY mouseleave3_remainging_chain []
 

Macro Definition Documentation

◆ EXPECT_TME_FLAGS

#define EXPECT_TME_FLAGS (   hWnd,
  expected 
)
Value:
ok(flags == (expected),"wrong tme flags. expected %li, and got %li\n", (DWORD)(expected), flags); \
}
DWORD TmeQuery(HWND hwnd)
HWND hWnd
Definition: settings.c:17
unsigned long DWORD
Definition: ntddk_ex.h:95
GLbitfield flags
Definition: glext.h:7161
BOOL expected
Definition: store.c:2063

Definition at line 157 of file TrackMouseEvent.c.

◆ FLUSH_MESSAGES

#define FLUSH_MESSAGES (   expected,
  notexpected 
)
Value:
{ EXPECT_QUEUE_STATUS(expected, notexpected);\
FlushMessages();\
}
#define EXPECT_QUEUE_STATUS(expected, notexpected)
Definition: msgtrace.h:66
BOOL expected
Definition: store.c:2063

Definition at line 96 of file TrackMouseEvent.c.

◆ MOVE_CURSOR

#define MOVE_CURSOR (   x,
  y 
)
Value:
#define MOUSEEVENTF_ABSOLUTE
Definition: winuser.h:1180
#define SM_CXVIRTUALSCREEN
Definition: winuser.h:1028
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
void WINAPI mouse_event(_In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ DWORD, _In_ ULONG_PTR)
#define SM_CYVIRTUALSCREEN
Definition: winuser.h:1029
int WINAPI GetSystemMetrics(_In_ int)
#define MOUSEEVENTF_MOVE
Definition: winuser.h:1169
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548

Definition at line 162 of file TrackMouseEvent.c.

Function Documentation

◆ create_test_windows()

static void create_test_windows ( )
static

Definition at line 101 of file TrackMouseEvent.c.

102 {
105  ok(hMouseHook!=NULL,"failed to set hook\n");
106  ok(hMouseHookLL!=NULL,"failed to set hook\n");
107 
108  RegisterSimpleClass(TmeTestProc, L"testClass");
109 
110  hWnd1 = CreateWindowW(L"testClass", L"test", WS_OVERLAPPEDWINDOW,
111  100, 100, 500, 500, NULL, NULL, 0, NULL);
112  hWnd2 = CreateWindowW(L"testClass", L"test", WS_CHILD,
113  50, 50, 200, 200, hWnd1, NULL, 0, NULL);
114  hWnd3 = CreateWindowW(L"testClass", L"test", WS_CHILD,
115  150, 150, 200, 200, hWnd1, NULL, 0, NULL);
116 
123  //SetWindowPos (hWnd3, HWND_TOP, 0,0,0,0, SWP_NOMOVE|SWP_NOREDRAW);
124 }
#define WH_MOUSE
Definition: winuser.h:37
HHOOK hMouseHookLL
LRESULT CALLBACK TmeTestProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
BOOL WINAPI UpdateWindow(_In_ HWND)
HHOOK hMouseHook
static LRESULT CALLBACK MouseLLHookProc(int nCode, WPARAM wParam, LPARAM lParam)
#define WS_CHILD
Definition: pedump.c:617
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
#define CreateWindowW(a, b, c, d, e, f, g, h, i, j, k)
Definition: winuser.h:4291
static LRESULT CALLBACK MouseHookProc(int nCode, WPARAM wParam, LPARAM lParam)
#define WH_MOUSE_LL
Definition: winuser.h:44
HWND hWnd2
#define SW_SHOW
Definition: winuser.h:769
DWORD WINAPI GetCurrentThreadId(VOID)
Definition: thread.c:458
static __inline ATOM RegisterSimpleClass(WNDPROC lpfnWndProc, LPCWSTR lpszClassName)
HWND hWnd1
static const WCHAR L[]
Definition: oid.c:1250
#define SW_SHOWNORMAL
Definition: winuser.h:764
HWND hWnd3
#define ok(value,...)
Definition: atltest.h:57
#define NULL
Definition: types.h:112
HHOOK WINAPI SetWindowsHookExW(_In_ int, _In_ HOOKPROC, _In_opt_ HINSTANCE, _In_ DWORD)
#define WS_OVERLAPPEDWINDOW
Definition: pedump.c:637
HMODULE WINAPI GetModuleHandleW(LPCWSTR lpModuleName)
Definition: loader.c:838

Referenced by Test_TrackMouseEvent().

◆ destroy_test_window()

static void destroy_test_window ( )
static

Definition at line 126 of file TrackMouseEvent.c.

127 {
129  UnregisterClassW(L"testClass", 0);
132 }
BOOL WINAPI UnregisterClassW(_In_ LPCWSTR, HINSTANCE)
HHOOK hMouseHookLL
HHOOK hMouseHook
BOOL WINAPI DestroyWindow(_In_ HWND)
HWND hWnd1
static const WCHAR L[]
Definition: oid.c:1250
BOOL WINAPI UnhookWindowsHookEx(_In_ HHOOK)

Referenced by Test_TrackMouseEvent().

◆ FlushMessages()

static void FlushMessages ( )
static

Definition at line 74 of file TrackMouseEvent.c.

75 {
76  MSG msg;
77 
78  while (PeekMessage( &msg, 0, 0, 0, PM_REMOVE ))
79  {
80  int iwnd = get_iwnd(msg.hwnd);
81  if(iwnd)
82  {
83  if(msg.message == WM_SYSTIMER)
84  {
85  RECORD_MESSAGE(iwnd, msg.message, POST,msg.wParam,0);
86  if(ignore_timer)
87  continue;
88  }
89  else if(!(msg.message > WM_USER || !iwnd || IsDWmMsg(msg.message) || IseKeyMsg(msg.message)))
90  RECORD_MESSAGE(iwnd, msg.message, POST,0,0);
91  }
93  }
94 }
LRESULT WINAPI DispatchMessageA(_In_ const MSG *)
#define PeekMessage
Definition: winuser.h:5805
#define WM_SYSTIMER
Definition: comctl32.h:112
TW_UINT32 TW_UINT16 TW_UINT16 MSG
Definition: twain.h:1827
static BOOL IseKeyMsg(UINT msg)
Definition: msgtrace.h:52
static int get_iwnd(HWND hWnd)
int ignore_timer
Definition: msgtrace.h:7
#define WM_USER
Definition: winuser.h:1877
static BOOL IsDWmMsg(UINT msg)
Definition: msgtrace.h:39
#define msg(x)
Definition: auth_time.c:54
#define RECORD_MESSAGE(...)
Definition: msgtrace.h:60
#define PM_REMOVE
Definition: winuser.h:1182

Referenced by Test_TrackMouseEvent().

◆ get_iwnd()

static int get_iwnd ( HWND  hWnd)
static

Definition at line 14 of file TrackMouseEvent.c.

15 {
16  if(hWnd == hWnd1) return 1;
17  else if(hWnd == hWnd2) return 2;
18  else if(hWnd == hWnd3) return 3;
19  else return 0;
20 }
HWND hWnd
Definition: settings.c:17
HWND hWnd2
HWND hWnd1
HWND hWnd3

Referenced by FlushMessages(), MouseHookProc(), and TmeTestProc().

◆ MouseHookProc()

static LRESULT CALLBACK MouseHookProc ( int  nCode,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 63 of file TrackMouseEvent.c.

64 {
66  LRESULT ret;
69  if(ignore_mouse)
70  return TRUE;
71  return ret;
72 }
#define WH_MOUSE
Definition: winuser.h:37
#define TRUE
Definition: types.h:120
HHOOK hMouseHook
WPARAM wParam
Definition: combotst.c:138
static int get_iwnd(HWND hWnd)
int ret
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
#define RECORD_MESSAGE(...)
Definition: msgtrace.h:60
LONG_PTR LRESULT
Definition: windef.h:209
LPARAM lParam
Definition: combotst.c:139
int ignore_mouse

Referenced by create_test_windows().

◆ MouseLLHookProc()

static LRESULT CALLBACK MouseLLHookProc ( int  nCode,
WPARAM  wParam,
LPARAM  lParam 
)
static

Definition at line 53 of file TrackMouseEvent.c.

54 {
55  LRESULT ret;
58  if(ignore_mousell)
59  return TRUE;
60  return ret;
61 }
HHOOK hMouseHookLL
#define TRUE
Definition: types.h:120
WPARAM wParam
Definition: combotst.c:138
#define WH_MOUSE_LL
Definition: winuser.h:44
int ret
LRESULT WINAPI CallNextHookEx(_In_opt_ HHOOK, _In_ int, _In_ WPARAM, _In_ LPARAM)
int ignore_mousell
#define RECORD_MESSAGE(...)
Definition: msgtrace.h:60
LONG_PTR LRESULT
Definition: windef.h:209
LPARAM lParam
Definition: combotst.c:139

Referenced by create_test_windows().

◆ START_TEST()

START_TEST ( TrackMouseEvent  )

Definition at line 433 of file TrackMouseEvent.c.

434 {
436 }
void Test_TrackMouseEvent()

◆ Test_TrackMouseEvent()

void Test_TrackMouseEvent ( )

Definition at line 259 of file TrackMouseEvent.c.

260 {
261  MOVE_CURSOR(0,0);
263  FlushMessages();
264  EMPTY_CACHE();
265 
266  /* the mouse moves over hwnd2 */
267  MOVE_CURSOR(220,220);
268  FlushMessages();
271 
272  /* Begin tracking mouse events for hWnd2 */
275  FlushMessages();
277 
278  /* the mouse hovers hwnd2 */
279  MOVE_CURSOR(221, 221);
280  Sleep(100);
285 
286  /* the mouse leaves hwnd2 and moves to hwnd1 */
287  MOVE_CURSOR(150, 150);
292 
293  FlushMessages();
295 
296  /* the mouse moves over hwnd2 */
297  MOVE_CURSOR(220,220);
301 
302  FlushMessages();
304 
305  /* Begin tracking mouse events for hWnd2 */
313 
314  /* the mouse moves from hwnd2 to the intersection of hwnd2 and hwnd3 */
315  MOVE_CURSOR(300,300);
319 
320  FlushMessages();
322 
323  /* the mouse moves from hwnd2 to hwnd3 */
324  MOVE_CURSOR(400,400);
328 
329  FlushMessages();
331 
332  /* Begin tracking mouse events for hWnd3 */
337 
338  /* the mouse hovers hwnd3 */
339  MOVE_CURSOR(401,401);
340  Sleep(100);
345 
346  FlushMessages();
348 
349  /* Begin tracking mouse events for hWnd3 */
354 
355  /* make sure that the timer will fire before the mouse moves */
356  Sleep(100);
357  FlushMessages();
360 
361  Sleep(100);
362  FlushMessages();
364 
365  /* the mouse hovers hwnd3 and the timer is not dispatched*/
367  ignore_timer = TRUE;
368  MOVE_CURSOR(400,400);
369  Sleep(100);
371  FLUSH_MESSAGES(QS_TIMER|QS_MOUSEMOVE, 0); /* the loop drops WM_SYSTIMER */
372  EXPECT_TME_FLAGS(hWnd3, TME_HOVER|TME_LEAVE); /* TME_HOVER is still active */
373  COMPARE_CACHE(mousehover3_droptimer_chain); /* we get no WM_MOUSEHOVER */
374  ignore_timer = FALSE;
375 
376  /* the mouse hovers hwnd3 and mouse message is dropped by WH_MOUSE_LL */
378  MOVE_CURSOR(402,402);
379  Sleep(100);
381  FLUSH_MESSAGES(QS_TIMER, QS_MOUSEMOVE); /* WH_MOUSE_LL drops WM_MOUSEMOVE */
383  COMPARE_CACHE(mousehover3_dropmousell_chain); /* we get WM_MOUSEHOVER normaly */
385 
386  FlushMessages();
388 
389  /* the mouse hovers hwnd3 and mouse message is dropped by WH_MOUSE */
390  ignore_mouse = TRUE;
392  MOVE_CURSOR(401,401);
393  Sleep(100);
395  FLUSH_MESSAGES(QS_TIMER|QS_MOUSEMOVE, 0); /* WH_MOUSE drops WM_MOUSEMOVE */
397  COMPARE_CACHE(mousehover3_dropmouse_chain); /* we get WM_MOUSEHOVER normaly */
399 
400  FlushMessages();
402 
403  /* the mouse leaves hwnd3 and moves to hwnd2 and mouse message is dropped by WH_MOUSE_LL */
406  MOVE_CURSOR(220,220);
407  FLUSH_MESSAGES(0, QS_MOUSEMOVE|QS_TIMER); /* WH_MOUSE drops WM_MOUSEMOVE */
408  EXPECT_TME_FLAGS(hWnd3, TME_LEAVE); /* all flags are removed */
409  COMPARE_CACHE(mouseleave3to2_dropmousell_chain); /* we get no WM_MOUSELEAVE */
411 
412  FlushMessages();
414 
415  /* the mouse leaves hwnd3 and moves to hwnd2 and mouse message is dropped by WH_MOUSE */
416  ignore_mouse = TRUE;
417  MOVE_CURSOR(220,220);
418  FLUSH_MESSAGES(QS_MOUSEMOVE, QS_TIMER); /* WH_MOUSE drops WM_MOUSEMOVE */
419  EXPECT_TME_FLAGS(hWnd3, 0); /* all flags are removed */
420  COMPARE_CACHE(mouseleave3to2_dropmouse_chain); /* we get no WM_MOUSELEAVE */
422 
423  /* after WH_MOUSE drops WM_MOUSEMOVE, WM_MOUSELEAVE is still in the queue */
426 
427  FlushMessages();
429 
431 }
VOID WINAPI DECLSPEC_HOTPATCH Sleep(IN DWORD dwMilliseconds)
Definition: synch.c:790
#define FLUSH_MESSAGES(expected, notexpected)
#define TRUE
Definition: types.h:120
#define QS_TIMER
Definition: winuser.h:893
#define EXPECT_TME_FLAGS(hWnd, expected)
#define FALSE
Definition: types.h:117
MSG_ENTRY mousemove2_chain[]
MSG_ENTRY mousehover3_droptimer_chain[]
HWND hWnd2
MSG_ENTRY mouseleave2to3_chain[]
#define COMPARE_CACHE(msg_chain)
Definition: msgtrace.h:57
int ignore_timer
static void TmeStartTracking(HWND hwnd, DWORD Flags)
#define QS_MOUSEMOVE
Definition: winuser.h:886
#define EMPTY_CACHE()
Definition: msgtrace.h:59
MSG_ENTRY mousehover3_nomove_chain[]
MSG_ENTRY mouseleave3to2_dropmouse_chain[]
MSG_ENTRY mouseleave3to2_dropmousell_chain[]
int ignore_mousell
MSG_ENTRY mouseleave3_remainging_chain[]
#define TME_HOVER
Definition: commctrl.h:4976
HWND hWnd3
#define TME_LEAVE
Definition: commctrl.h:4977
#define QS_POSTMESSAGE
Definition: winuser.h:888
static void FlushMessages()
static void destroy_test_window()
static void create_test_windows()
#define MOVE_CURSOR(x, y)
MSG_ENTRY mouseleave2to1_chain[]
MSG_ENTRY mousehover3_chain[]
MSG_ENTRY empty_chain[]
Definition: msgtrace.c:20
MSG_ENTRY mousehover3_dropmouse_chain[]
MSG_ENTRY mousehover2_chain[]
int ignore_mouse
MSG_ENTRY mousehover3_dropmousell_chain[]

Referenced by START_TEST().

◆ TmeQuery()

DWORD TmeQuery ( HWND  hwnd)

Definition at line 147 of file TrackMouseEvent.c.

148 {
149  TRACKMOUSEEVENT tme;
150  tme.cbSize = sizeof(tme);
152  tme.hwndTrack = hwnd;
153  TrackMouseEvent(&tme);
154  return tme.dwFlags;
155 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
BOOL WINAPI TrackMouseEvent(_Inout_ LPTRACKMOUSEEVENT)
#define TME_QUERY
Definition: commctrl.h:4979
#define TME_HOVER
Definition: commctrl.h:4976
#define TME_LEAVE
Definition: commctrl.h:4977

◆ TmeStartTracking()

static void TmeStartTracking ( HWND  hwnd,
DWORD  Flags 
)
static

Definition at line 134 of file TrackMouseEvent.c.

135 {
136  TRACKMOUSEEVENT tme;
137  tme.cbSize = sizeof(tme);
138  tme.dwFlags = Flags;
139  tme.hwndTrack = hwnd;
140  tme.dwHoverTime = 1;
141  if(!TrackMouseEvent(&tme))
142  {
143  trace("failed!\n");
144  }
145 }
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
BOOL WINAPI TrackMouseEvent(_Inout_ LPTRACKMOUSEEVENT)
_Must_inspect_result_ _In_ ULONG Flags
Definition: wsk.h:170
#define trace
Definition: atltest.h:70

Referenced by Test_TrackMouseEvent().

◆ TmeTestProc()

LRESULT CALLBACK TmeTestProc ( HWND  hWnd,
UINT  message,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 22 of file TrackMouseEvent.c.

23 {
24  int iwnd = get_iwnd(hWnd);
25 
26  if(message == WM_PAINT)
27  {
28  PAINTSTRUCT ps;
29  BeginPaint(hWnd, &ps);
31  EndPaint(hWnd, &ps);
32  }
33 
34  if(message > WM_USER || !iwnd || IsDWmMsg(message) || IseKeyMsg(message))
36 
37  switch(message)
38  {
39  case WM_IME_SETCONTEXT:
40  case WM_IME_NOTIFY :
41  case WM_GETICON :
42  case WM_GETTEXT:
43  break;
44  case WM_SYSTIMER:
45  ok(0, "Got unexpected WM_SYSTIMER in the winproc. wParam=%d\n", wParam);
46  break;
47  default:
48  RECORD_MESSAGE(iwnd, message, SENT, 0,0);
49  }
51 }
#define WM_IME_NOTIFY
Definition: winuser.h:1812
Definition: tftpd.h:59
#define WM_SYSTIMER
Definition: comctl32.h:112
BOOL WINAPI Rectangle(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int)
#define WM_GETTEXT
Definition: winuser.h:1600
HWND hWnd
Definition: settings.c:17
LONG top
Definition: windef.h:307
LONG left
Definition: windef.h:306
BOOL WINAPI EndPaint(_In_ HWND, _In_ const PAINTSTRUCT *)
LONG right
Definition: windef.h:308
WPARAM wParam
Definition: combotst.c:138
static BOOL IseKeyMsg(UINT msg)
Definition: msgtrace.h:52
HDC WINAPI BeginPaint(_In_ HWND, _Out_ LPPAINTSTRUCT)
#define DefWindowProc
Definition: ros2win.h:31
static int get_iwnd(HWND hWnd)
#define WM_IME_SETCONTEXT
Definition: winuser.h:1811
#define WM_PAINT
Definition: winuser.h:1602
#define WM_USER
Definition: winuser.h:1877
static BOOL IsDWmMsg(UINT msg)
Definition: msgtrace.h:39
#define ok(value,...)
Definition: atltest.h:57
Definition: msgtrace.h:6
#define RECORD_MESSAGE(...)
Definition: msgtrace.h:60
LONG bottom
Definition: windef.h:309
LPARAM lParam
Definition: combotst.c:139

Referenced by create_test_windows().

Variable Documentation

◆ hMouseHook

HHOOK hMouseHook

Definition at line 11 of file TrackMouseEvent.c.

Referenced by create_test_windows(), destroy_test_window(), and MouseHookProc().

◆ hMouseHookLL

HHOOK hMouseHookLL

Definition at line 11 of file TrackMouseEvent.c.

Referenced by create_test_windows(), destroy_test_window(), and MouseLLHookProc().

◆ hWnd1

HWND hWnd1

Definition at line 10 of file TrackMouseEvent.c.

Referenced by create_test_windows(), destroy_test_window(), and get_iwnd().

◆ hWnd2

HWND hWnd2

Definition at line 10 of file TrackMouseEvent.c.

Referenced by create_test_windows(), get_iwnd(), and Test_TrackMouseEvent().

◆ hWnd3

HWND hWnd3

Definition at line 10 of file TrackMouseEvent.c.

Referenced by create_test_windows(), get_iwnd(), and Test_TrackMouseEvent().

◆ ignore_mouse

int ignore_mouse = 0

Definition at line 12 of file TrackMouseEvent.c.

Referenced by MouseHookProc(), and Test_TrackMouseEvent().

◆ ignore_mousell

int ignore_mousell = 0

Definition at line 12 of file TrackMouseEvent.c.

Referenced by MouseLLHookProc(), and Test_TrackMouseEvent().

◆ ignore_timer

int ignore_timer = 0

Definition at line 12 of file TrackMouseEvent.c.

Referenced by FlushMessages(), and Test_TrackMouseEvent().

◆ mousehover2_chain

MSG_ENTRY mousehover2_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_SYSTIMER
Definition: comctl32.h:112
#define WM_MOUSEHOVER
Definition: commctrl.h:4970
#define WM_NCHITTEST
Definition: winuser.h:1668
#define ID_TME_TIMER
Definition: undocuser.h:79
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_SETCURSOR
Definition: winuser.h:1618
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 176 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mousehover3_chain

MSG_ENTRY mousehover3_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_SYSTIMER
Definition: comctl32.h:112
#define WM_MOUSEHOVER
Definition: commctrl.h:4970
#define WM_NCHITTEST
Definition: winuser.h:1668
#define ID_TME_TIMER
Definition: undocuser.h:79
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_SETCURSOR
Definition: winuser.h:1618
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 206 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mousehover3_dropmouse_chain

MSG_ENTRY mousehover3_dropmouse_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_SYSTIMER
Definition: comctl32.h:112
#define WM_MOUSEHOVER
Definition: commctrl.h:4970
#define WM_NCHITTEST
Definition: winuser.h:1668
#define ID_TME_TIMER
Definition: undocuser.h:79
#define WH_MOUSE_LL
Definition: winuser.h:44
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 232 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mousehover3_dropmousell_chain

MSG_ENTRY mousehover3_dropmousell_chain[]
Initial value:
{0,0}}
struct tagHOOK HOOK
#define WM_SYSTIMER
Definition: comctl32.h:112
#define WM_MOUSEHOVER
Definition: commctrl.h:4970
#define ID_TME_TIMER
Definition: undocuser.h:79
#define WH_MOUSE_LL
Definition: winuser.h:44
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757

Definition at line 240 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mousehover3_droptimer_chain

MSG_ENTRY mousehover3_droptimer_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_SYSTIMER
Definition: comctl32.h:112
#define WM_NCHITTEST
Definition: winuser.h:1668
#define ID_TME_TIMER
Definition: undocuser.h:79
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_SETCURSOR
Definition: winuser.h:1618
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 222 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mousehover3_nomove_chain

MSG_ENTRY mousehover3_nomove_chain[]
Initial value:
{0,0}}
#define WM_SYSTIMER
Definition: comctl32.h:112
#define WM_MOUSEHOVER
Definition: commctrl.h:4970
#define ID_TME_TIMER
Definition: undocuser.h:79
Definition: msgtrace.h:7

Definition at line 217 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mouseleave2to1_chain

MSG_ENTRY mouseleave2to1_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_NCHITTEST
Definition: winuser.h:1668
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_SETCURSOR
Definition: winuser.h:1618
#define WM_MOUSELEAVE
Definition: commctrl.h:4971
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 187 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mouseleave2to3_chain

MSG_ENTRY mouseleave2to3_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_NCHITTEST
Definition: winuser.h:1668
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_SETCURSOR
Definition: winuser.h:1618
#define WM_MOUSELEAVE
Definition: commctrl.h:4971
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 196 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mouseleave3_remainging_chain

MSG_ENTRY mouseleave3_remainging_chain[]
Initial value:
{0,0}}
#define WM_MOUSELEAVE
Definition: commctrl.h:4971
Definition: msgtrace.h:7

Definition at line 256 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mouseleave3to2_dropmouse_chain

MSG_ENTRY mouseleave3to2_dropmouse_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_NCHITTEST
Definition: winuser.h:1668
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 246 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mouseleave3to2_dropmousell_chain

MSG_ENTRY mouseleave3to2_dropmousell_chain[]
Initial value:
{0,0}}
struct tagHOOK HOOK
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_MOUSEMOVE
Definition: winuser.h:1757

Definition at line 252 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().

◆ mousemove2_chain

MSG_ENTRY mousemove2_chain[]
Initial value:
{0,0}}
#define WH_MOUSE
Definition: winuser.h:37
struct tagHOOK HOOK
#define WM_NCHITTEST
Definition: winuser.h:1668
#define WH_MOUSE_LL
Definition: winuser.h:44
#define WM_SETCURSOR
Definition: winuser.h:1618
Definition: msgtrace.h:7
#define WM_MOUSEMOVE
Definition: winuser.h:1757
#define HTCLIENT
Definition: winuser.h:2450

Definition at line 167 of file TrackMouseEvent.c.

Referenced by Test_TrackMouseEvent().