From: Myah Caron Subject: Re: [PATCH v4] user32/tests: Add more tests for GetMouseMovePointsEx. Message-Id: <1uYvk6inVjQMVXT6x0VQ6xQTSIwUJvde-4j4yPUaJWMiCrqZgv_ujEpwZB5t7Od3ZTGcGod4U38aHW3G-eNiPwetpV9UD1AOJAeVhpJkeZQ=@protonmail.com> Date: Mon, 14 Sep 2020 18:43:35 +0000 In-Reply-To: References: > Though I haven't tested this yet, according to what I understood from MSDN, the list of points is stored in > user space, not kernel space: > > > The GetMouseMovePointsEx function will return points that eventually were dispatched not only to the calling > > thread but also to other threads. With Arkadiusz's patch being server-side, I got curious about this so I created a small test: #include #include int main() { MOUSEMOVEPOINT in; MOUSEMOVEPOINT out[200]; int retval, i; memset(&in, 0, sizeof(MOUSEMOVEPOINT)); SetCursorPos(6, 6); SetCursorPos(7, 7); in.x = 7; in.y = 7; retval = GetMouseMovePointsEx(sizeof(MOUSEMOVEPOINT), &in, out, 64, GMMP_USE_DISPLAY_POINTS); printf("%d\n", retval); // returns 64, not 2 for (i = 0; i < retval; i++) printf("[%d]: .x=%d, .y=%d, .time=%d\n", i, out[i].x, out[i].y, out[i].time); return 0; } It appears the list of points is not stored in user-space (for the application running it), so please ignore my assumption :)