sl@0: // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // wins\specific\multitouchwindowsheader.h sl@0: // sl@0: // sl@0: /** sl@0: * This header file includes some Windows API declarations sl@0: */ sl@0: #ifndef MULTITOUCHWINDOWSHEADER_H sl@0: #define MULTITOUCHWINDOWSHEADER_H sl@0: sl@0: #pragma warning(disable:4201) // ignore the anonymous struct warning in this file sl@0: #define _ANONYMOUS_UNION sl@0: #define _ANONYMOUS_STRUCT sl@0: sl@0: #undef WM_MOUSEWHEEL sl@0: #define WM_MOUSEWHEEL 0x020A sl@0: sl@0: #define RID_INPUT 0x10000003 sl@0: #define RID_HEADER 0x10000005 sl@0: #define RIDEV_REMOVE 0x00000001 sl@0: #define RIDEV_PAGEONLY 0x00000020 sl@0: #define RIDEV_NOLEGACY 0x00000030 sl@0: #define MOUSE_MOVE_ABSOLUTE 0x00000001 sl@0: #define RI_MOUSE_LEFT_BUTTON_DOWN 0x0001 sl@0: #define RI_MOUSE_LEFT_BUTTON_UP 0x0002 sl@0: #define RI_MOUSE_RIGHT_BUTTON_DOWN 0x0004 sl@0: #define RI_MOUSE_RIGHT_BUTTON_UP 0x0008 sl@0: #define RI_MOUSE_WHEEL 0x0400 sl@0: #define RIM_TYPEMOUSE 0x00000000 sl@0: sl@0: DECLARE_HANDLE(HRAWINPUT); sl@0: typedef struct tagRAWINPUTHEADER { sl@0: DWORD dwType; sl@0: DWORD dwSize; sl@0: HANDLE hDevice; sl@0: WPARAM wParam; sl@0: } RAWINPUTHEADER,*PRAWINPUTHEADER; sl@0: sl@0: typedef struct tagRAWMOUSE { sl@0: USHORT usFlags; sl@0: _ANONYMOUS_UNION union { sl@0: ULONG ulButtons; sl@0: _ANONYMOUS_STRUCT struct { sl@0: USHORT usButtonFlags; sl@0: USHORT usButtonData; sl@0: }; sl@0: }; sl@0: ULONG ulRawButtons; sl@0: LONG lLastX; sl@0: LONG lLastY; sl@0: ULONG ulExtraInformation; sl@0: } RAWMOUSE,*PRAWMOUSE,*LPRAWMOUSE; sl@0: sl@0: typedef struct tagRAWKEYBOARD { sl@0: USHORT MakeCode; sl@0: USHORT Flags; sl@0: USHORT Reserved; sl@0: USHORT VKey; sl@0: UINT Message; sl@0: ULONG ExtraInformation; sl@0: } RAWKEYBOARD,*PRAWKEYBOARD,*LPRAWKEYBOARD; sl@0: sl@0: typedef struct tagRAWHID { sl@0: DWORD dwSizeHid; sl@0: DWORD dwCount; sl@0: BYTE bRawData; sl@0: } RAWHID,*PRAWHID,*LPRAWHID; sl@0: sl@0: typedef struct tagRAWINPUT { sl@0: RAWINPUTHEADER header; sl@0: union { sl@0: RAWMOUSE mouse; sl@0: RAWKEYBOARD keyboard; sl@0: RAWHID hid; sl@0: } data; sl@0: } RAWINPUT,*PRAWINPUT,*LPRAWINPUT; sl@0: sl@0: typedef struct tagRAWINPUTDEVICE { sl@0: USHORT usUsagePage; sl@0: USHORT usUsage; sl@0: DWORD dwFlags; sl@0: HWND hwndTarget; sl@0: } RAWINPUTDEVICE,*PRAWINPUTDEVICE,*LPRAWINPUTDEVICE; sl@0: sl@0: typedef const RAWINPUTDEVICE *PCRAWINPUTDEVICE; sl@0: sl@0: typedef struct tagRAWINPUTDEVICELIST { sl@0: HANDLE hDevice; sl@0: DWORD dwType; sl@0: } RAWINPUTDEVICELIST,*PRAWINPUTDEVICELIST; sl@0: sl@0: typedef WINUSERAPI BOOL (WINAPI *TYPEOF_RegisterRawInputDevices)(PCRAWINPUTDEVICE,UINT,UINT); sl@0: typedef WINUSERAPI UINT (WINAPI *TYPEOF_GetRawInputData)(HRAWINPUT,UINT,LPVOID,PUINT,UINT); sl@0: typedef WINUSERAPI UINT (WINAPI *TYPEOF_GetRawInputDeviceList)(PRAWINPUTDEVICELIST,PUINT,UINT); sl@0: sl@0: #endif