     { "DWORD" "dwHow" } ;
 TYPEDEF: DIPROPHEADER* LPDIPROPHEADER
 TYPEDEF: DIPROPHEADER* LPCDIPROPHEADER
+C-STRUCT: DIPROPDWORD
+    { "DIPROPHEADER" "diph" }
+    { "DWORD"        "dwData" } ;
+TYPEDEF: DIPROPDWORD* LPDIPROPDWORD
+TYPEDEF: DIPROPDWORD* LPCDIPROPDWORD
+C-STRUCT: DIPROPPOINTER
+    { "DIPROPHEADER" "diph" }
+    { "UINT_PTR" "uData" } ;
+TYPEDEF: DIPROPPOINTER* LPDIPROPPOINTER
+TYPEDEF: DIPROPPOINTER* LPCDIPROPPOINTER
+C-STRUCT: DIPROPRANGE
+    { "DIPROPHEADER" "diph" }
+    { "LONG" "lMin" }
+    { "LONG" "lMax" } ;
+TYPEDEF: DIPROPRANGE* LPDIPROPRANGE
+TYPEDEF: DIPROPRANGE* LPCDIPROPRANGE
+C-STRUCT: DIPROPCAL
+    { "DIPROPHEADER" "diph" }
+    { "LONG" "lMin" }
+    { "LONG" "lCenter" }
+    { "LONG" "lMax" } ;
+TYPEDEF: DIPROPCAL* LPDIPROPCAL
+TYPEDEF: DIPROPCAL* LPCDIPROPCAL
+C-STRUCT: DIPROPGUIDANDPATH
+    { "DIPROPHEADER" "diph" }
+    { "GUID" "guidClass" }
+    { "WCHAR[260]"   "wszPath" } ;
+TYPEDEF: DIPROPGUIDANDPATH* LPDIPROPGUIDANDPATH
+TYPEDEF: DIPROPGUIDANDPATH* LPCDIPROPGUIDANDPATH
+C-STRUCT: DIPROPSTRING
+    { "DIPROPHEADER" "diph" }
+    { "WCHAR[260]"   "wsz" } ;
+TYPEDEF: DIPROPSTRING* LPDIPROPSTRING
+TYPEDEF: DIPROPSTRING* LPCDIPROPSTRING
+C-STRUCT: CPOINT
+    { "LONG" "lP" }
+    { "DWORD" "dwLog" } ;
+C-STRUCT: DIPROPCPOINTS
+    { "DIPROPHEADER" "diph" }
+    { "DWORD" "dwCPointsNum" }
+    { "CPOINT[8]" "cp" } ;
+TYPEDEF: DIPROPCPOINTS* LPDIPROPCPOINTS
+TYPEDEF: DIPROPCPOINTS* LPCDIPROPCPOINTS
 C-STRUCT: DIENVELOPE
     { "DWORD" "dwSize" }
     { "DWORD" "dwAttackLevel" }

: DI8DEVTYPE_SUPPLEMENTAL     HEX: 1C ; inline

: GET_DIDEVICE_TYPE ( dwType -- type ) HEX: FF bitand ; inline


: DIK_CIRCUMFLEX      DIK_PREVTRACK ; inline

: DI8DEVTYPE_DEVICE           HEX: 11 ; inline
: DI8DEVTYPE_MOUSE            HEX: 12 ; inline
: DI8DEVTYPE_KEYBOARD         HEX: 13 ; inline
