ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntddmou.h
Go to the documentation of this file.
00001 /*
00002  * ntddmou.h
00003  *
00004  * Mouse device IOCTL interface.
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #pragma once
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 #define DD_MOUSE_DEVICE_NAME              "\\Device\\PointerClass"
00030 #define DD_MOUSE_DEVICE_NAME_U            L"\\Device\\PointerClass"
00031 
00032 #define IOCTL_MOUSE_QUERY_ATTRIBUTES \
00033   CTL_CODE(FILE_DEVICE_MOUSE, 0, METHOD_BUFFERED, FILE_ANY_ACCESS)
00034 
00035 #define IOCTL_MOUSE_INSERT_DATA \
00036   CTL_CODE(FILE_DEVICE_MOUSE, 1, METHOD_BUFFERED, FILE_ANY_ACCESS)
00037 
00038 DEFINE_GUID(GUID_DEVINTERFACE_MOUSE, \
00039   0x378de44c, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd);
00040 
00041 #define GUID_CLASS_MOUSE GUID_DEVINTERFACE_MOUSE /* Obsolete */
00042 
00043 #define MOUSE_ERROR_VALUE_BASE            20000
00044 
00045 /* MOUSE_INPUT_DATA.ButtonFlags constants */
00046 #define MOUSE_LEFT_BUTTON_DOWN            0x0001
00047 #define MOUSE_LEFT_BUTTON_UP              0x0002
00048 #define MOUSE_RIGHT_BUTTON_DOWN           0x0004
00049 #define MOUSE_RIGHT_BUTTON_UP             0x0008
00050 #define MOUSE_MIDDLE_BUTTON_DOWN          0x0010
00051 #define MOUSE_MIDDLE_BUTTON_UP            0x0020
00052 #define MOUSE_BUTTON_4_DOWN               0x0040
00053 #define MOUSE_BUTTON_4_UP                 0x0080
00054 #define MOUSE_BUTTON_5_DOWN               0x0100
00055 #define MOUSE_BUTTON_5_UP                 0x0200
00056 #define MOUSE_WHEEL                       0x0400
00057 #define MOUSE_HWHEEL                      0x0800
00058 
00059 #define MOUSE_BUTTON_1_DOWN               MOUSE_LEFT_BUTTON_DOWN
00060 #define MOUSE_BUTTON_1_UP                 MOUSE_LEFT_BUTTON_UP
00061 #define MOUSE_BUTTON_2_DOWN               MOUSE_RIGHT_BUTTON_DOWN
00062 #define MOUSE_BUTTON_2_UP                 MOUSE_RIGHT_BUTTON_UP
00063 #define MOUSE_BUTTON_3_DOWN               MOUSE_MIDDLE_BUTTON_DOWN
00064 #define MOUSE_BUTTON_3_UP                 MOUSE_MIDDLE_BUTTON_UP
00065 
00066 /* MOUSE_INPUT_DATA.Flags constants */
00067 #define MOUSE_MOVE_RELATIVE               0
00068 #define MOUSE_MOVE_ABSOLUTE               1
00069 #define MOUSE_VIRTUAL_DESKTOP             0x02
00070 #define MOUSE_ATTRIBUTES_CHANGED          0x04
00071 #if(_WIN32_WINNT >= 0x0600)
00072 #define MOUSE_MOVE_NOCOALESCE             0x08
00073 #endif
00074 #define MOUSE_TERMSRV_SRC_SHADOW          0x100
00075 
00076 typedef struct _MOUSE_INPUT_DATA {
00077   USHORT UnitId;
00078   USHORT Flags;
00079   __MINGW_EXTENSION union {
00080     ULONG Buttons;
00081     __MINGW_EXTENSION struct {
00082       USHORT ButtonFlags;
00083       USHORT ButtonData;
00084     } DUMMYSTRUCTNAME;
00085   } DUMMYUNIONNAME;
00086   ULONG RawButtons;
00087   LONG LastX;
00088   LONG LastY;
00089   ULONG ExtraInformation;
00090 } MOUSE_INPUT_DATA, *PMOUSE_INPUT_DATA;
00091 
00092 typedef struct _MOUSE_UNIT_ID_PARAMETER {
00093   USHORT UnitId;
00094 } MOUSE_UNIT_ID_PARAMETER, *PMOUSE_UNIT_ID_PARAMETER;
00095 
00096 /* MOUSE_ATTRIBUTES.MouseIdentifier constants */
00097 #define MOUSE_INPORT_HARDWARE             0x0001
00098 #define MOUSE_I8042_HARDWARE              0x0002
00099 #define MOUSE_SERIAL_HARDWARE             0x0004
00100 #define BALLPOINT_I8042_HARDWARE          0x0008
00101 #define BALLPOINT_SERIAL_HARDWARE         0x0010
00102 #define WHEELMOUSE_I8042_HARDWARE         0x0020
00103 #define WHEELMOUSE_SERIAL_HARDWARE        0x0040
00104 #define MOUSE_HID_HARDWARE                0x0080
00105 #define WHEELMOUSE_HID_HARDWARE           0x0100
00106 #define HORIZONTAL_WHEEL_PRESENT          0x8000
00107 
00108 typedef struct _MOUSE_ATTRIBUTES {
00109   USHORT MouseIdentifier;
00110   USHORT NumberOfButtons;
00111   USHORT SampleRate;
00112   ULONG InputDataQueueLength;
00113 } MOUSE_ATTRIBUTES, *PMOUSE_ATTRIBUTES;
00114 
00115 #ifdef __cplusplus
00116 }
00117 #endif

Generated on Sun May 27 2012 04:32:06 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.