[PATCH v10 4/9] user32: Add helper for input drivers to submit native rawinput msgs.

Rémi Bernon rbernon at codeweavers.com
Fri Aug 2 03:27:19 CDT 2019


On 8/2/19 8:24 AM, Derek Lesho wrote:
> diff --git a/dlls/user32/input.c b/dlls/user32/input.c
> index 8b2ae805aa..f7ef1c3be2 100644
> --- a/dlls/user32/input.c
> +++ b/dlls/user32/input.c
> @@ -33,6 +33,7 @@
>   #include <assert.h>
>   
>   #define NONAMELESSUNION
> +#define NONAMELESSSTRUCT
>   
>   #include "ntstatus.h"
>   #define WIN32_NO_STATUS
> @@ -129,6 +130,34 @@ BOOL CDECL __wine_send_input( HWND hwnd, const INPUT *input )
>       return !status;
>   }
>   
> +BOOL CDECL __wine_send_raw_input( const RAWINPUT *raw_input )
> +{
> +    NTSTATUS status;
> +
> +    SERVER_START_REQ( send_rawinput_message )
> +    {
> +        req->input.type = raw_input->header.dwType;
> +        switch (raw_input->header.dwType)
> +        {
> +        case RIM_TYPEMOUSE:
> +            if (raw_input->data.mouse.usFlags || raw_input->data.mouse.ulRawButtons
> +                 || raw_input->data.mouse.ulExtraInformation)
> +                WARN("Unhandled parameters");

FIXME would be more appropriate IMHO.

> +
> +            req->input.mouse.x = raw_input->data.mouse.lLastX;
> +            req->input.mouse.y = raw_input->data.mouse.lLastY;
> +            req->input.mouse.button_flags = raw_input->data.mouse.u.s.usButtonFlags;
> +            req->input.mouse.button_data = raw_input->data.mouse.u.s.usButtonData;
> +            break;
> +        }
> +        status = wine_server_call( req );
> +    }
> +    SERVER_END_REQ;
> +
> +    if (status) SetLastError( RtlNtStatusToDosError(status) );
> +    return !status;
> +}
> +
>   
>   /***********************************************************************
>    *		update_mouse_coord
-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list