1 USING: windows.kernel32 windows.ole32 windows.com windows.com.syntax
2 alien alien.c-types alien.syntax kernel system namespaces math
8 TYPEDEF: void* LPDIENUMDEVICESCALLBACKW
9 : LPDIENUMDEVICESCALLBACKW ( quot -- alien )
10 [ "BOOL" { "LPCDIDEVICEINSTANCEW" "LPVOID" } "stdcall" ]
11 dip alien-callback ; inline
12 TYPEDEF: void* LPDIENUMDEVICESBYSEMANTICSCBW
13 : LPDIENUMDEVICESBYSEMANTICSCBW ( quot -- alien )
14 [ "BOOL" { "LPCDIDEVICEINSTANCEW" "IDirectInputDevice8W*" "DWORD" "DWORD" "LPVOID" } "stdcall" ]
15 dip alien-callback ; inline
16 TYPEDEF: void* LPDICONFIGUREDEVICESCALLBACK
17 : LPDICONFIGUREDEVICESCALLBACK ( quot -- alien )
18 [ "BOOL" { "IUnknown*" "LPVOID" } "stdcall" ]
19 dip alien-callback ; inline
20 TYPEDEF: void* LPDIENUMEFFECTSCALLBACKW
21 : LPDIENUMEFFECTSCALLBACKW ( quot -- alien )
22 [ "BOOL" { "LPCDIEFFECTINFOW" "LPVOID" } "stdcall" ]
23 dip alien-callback ; inline
24 TYPEDEF: void* LPDIENUMCREATEDEFFECTOBJECTSCALLBACK
25 : LPDIENUMCREATEDEFFECTOBJECTSCALLBACK ( quot -- callback )
26 [ "BOOL" { "LPDIRECTINPUTEFFECT" "LPVOID" } "stdcall" ]
27 dip alien-callback ; inline
28 TYPEDEF: void* LPDIENUMEFFECTSINFILECALLBACK
29 : LPDIENUMEFFECTSINFILECALLBACK ( quot -- callback )
30 [ "BOOL" { "LPCDIFILEEFFECT" "LPVOID" } "stdcall" ]
31 dip alien-callback ; inline
32 TYPEDEF: void* LPDIENUMDEVICEOBJECTSCALLBACKW
33 : LPDIENUMDEVICEOBJECTSCALLBACKW ( quot -- callback )
34 [ "BOOL" { "LPCDIDEVICEOBJECTINSTANCEW" "LPVOID" } "stdcall" ]
35 dip alien-callback ; inline
37 TYPEDEF: DWORD D3DCOLOR
39 STRUCT: DIDEVICEINSTANCEW
44 { tszInstanceName WCHAR[260] }
45 { tszProductName WCHAR[260] }
49 TYPEDEF: DIDEVICEINSTANCEW* LPDIDEVICEINSTANCEW
50 TYPEDEF: DIDEVICEINSTANCEW* LPCDIDEVICEINSTANCEW
51 UNION-STRUCT: DIACTION-union
52 { lptszActionName LPCWSTR }
53 { uResIdString UINT } ;
58 { union DIACTION-union }
62 TYPEDEF: DIACTIONW* LPDIACTIONW
63 TYPEDEF: DIACTIONW* LPCDIACTIONW
64 STRUCT: DIACTIONFORMATW
66 { dwActionSize DWORD }
68 { dwNumActions DWORD }
69 { rgoAction LPDIACTIONW }
70 { guidActionMap GUID }
72 { dwBufferSize DWORD }
75 { hInstString HINSTANCE }
76 { ftTimeStamp FILETIME }
78 { tszActionMap WCHAR[260] } ;
79 TYPEDEF: DIACTIONFORMATW* LPDIACTIONFORMATW
80 TYPEDEF: DIACTIONFORMATW* LPCDIACTIONFORMATW
83 { cTextFore D3DCOLOR }
84 { cTextHighlight D3DCOLOR }
85 { cCalloutLine D3DCOLOR }
86 { cCalloutHighlight D3DCOLOR }
88 { cControlFill D3DCOLOR }
89 { cHighlightFill D3DCOLOR }
90 { cAreaFill D3DCOLOR } ;
91 TYPEDEF: DICOLORSET* LPDICOLORSET
92 TYPEDEF: DICOLORSET* LPCDICOLORSET
94 STRUCT: DICONFIGUREDEVICESPARAMSW
97 { lptszUserNames LPWSTR }
99 { lprgFormats LPDIACTIONFORMATW }
102 { lpUnkDDSTarget IUnknown* } ;
103 TYPEDEF: DICONFIGUREDEVICESPARAMSW* LPDICONFIGUREDEVICESPARAMSW
104 TYPEDEF: DICONFIGUREDEVICESPARAMSW* LPDICONFIGUREDEVICESPARAMSW
113 { dwFFSamplePeriod DWORD }
114 { dwFFMinTimeResolution DWORD }
115 { dwFirmwareRevision DWORD }
116 { dwHardwareRevision DWORD }
117 { dwFFDriverVersion DWORD } ;
118 TYPEDEF: DIDEVCAPS* LPDIDEVCAPS
119 TYPEDEF: DIDEVCAPS* LPCDIDEVCAPS
120 STRUCT: DIDEVICEOBJECTINSTANCEW
126 { tszName WCHAR[260] }
127 { dwFFMaxForce DWORD }
128 { dwFFForceResolution DWORD }
129 { wCollectionNumber WORD }
130 { wDesignatorIndex WORD }
133 { dwDimension DWORD }
136 TYPEDEF: DIDEVICEOBJECTINSTANCEW* LPDIDEVICEOBJECTINSTANCEW
137 TYPEDEF: DIDEVICEOBJECTINSTANCEW* LPCDIDEVICEOBJECTINSTANCEW
138 STRUCT: DIDEVICEOBJECTDATA
141 { dwTimeStamp DWORD }
143 { uAppData UINT_PTR } ;
144 TYPEDEF: DIDEVICEOBJECTDATA* LPDIDEVICEOBJECTDATA
145 TYPEDEF: DIDEVICEOBJECTDATA* LPCDIDEVICEOBJECTDATA
146 STRUCT: DIOBJECTDATAFORMAT
151 TYPEDEF: DIOBJECTDATAFORMAT* LPDIOBJECTDATAFORMAT
152 TYPEDEF: DIOBJECTDATAFORMAT* LPCDIOBJECTDATAFORMAT
159 { rgodf LPDIOBJECTDATAFORMAT } ;
160 TYPEDEF: DIDATAFORMAT* LPDIDATAFORMAT
161 TYPEDEF: DIDATAFORMAT* LPCDIDATAFORMAT
164 { dwHeaderSize DWORD }
167 TYPEDEF: DIPROPHEADER* LPDIPROPHEADER
168 TYPEDEF: DIPROPHEADER* LPCDIPROPHEADER
170 { diph DIPROPHEADER }
172 TYPEDEF: DIPROPDWORD* LPDIPROPDWORD
173 TYPEDEF: DIPROPDWORD* LPCDIPROPDWORD
174 STRUCT: DIPROPPOINTER
175 { diph DIPROPHEADER }
177 TYPEDEF: DIPROPPOINTER* LPDIPROPPOINTER
178 TYPEDEF: DIPROPPOINTER* LPCDIPROPPOINTER
180 { diph DIPROPHEADER }
183 TYPEDEF: DIPROPRANGE* LPDIPROPRANGE
184 TYPEDEF: DIPROPRANGE* LPCDIPROPRANGE
186 { diph DIPROPHEADER }
190 TYPEDEF: DIPROPCAL* LPDIPROPCAL
191 TYPEDEF: DIPROPCAL* LPCDIPROPCAL
192 STRUCT: DIPROPGUIDANDPATH
193 { diph DIPROPHEADER }
195 { wszPath WCHAR[260] } ;
196 TYPEDEF: DIPROPGUIDANDPATH* LPDIPROPGUIDANDPATH
197 TYPEDEF: DIPROPGUIDANDPATH* LPCDIPROPGUIDANDPATH
199 { diph DIPROPHEADER }
201 TYPEDEF: DIPROPSTRING* LPDIPROPSTRING
202 TYPEDEF: DIPROPSTRING* LPCDIPROPSTRING
206 STRUCT: DIPROPCPOINTS
207 { diph DIPROPHEADER }
208 { dwCPointsNum DWORD }
210 TYPEDEF: DIPROPCPOINTS* LPDIPROPCPOINTS
211 TYPEDEF: DIPROPCPOINTS* LPCDIPROPCPOINTS
214 { dwAttackLevel DWORD }
215 { dwAttackTime DWORD }
216 { dwFadeLevel DWORD }
217 { dwFadeTime DWORD } ;
218 TYPEDEF: DIENVELOPE* LPDIENVELOPE
219 TYPEDEF: DIENVELOPE* LPCDIENVELOPE
224 { dwSamplePeriod DWORD }
226 { dwTriggerButton DWORD }
227 { dwTriggerRepeatInterval DWORD }
230 { rglDirection LPLONG }
231 { lpEnvelope LPDIENVELOPE }
232 { cbTypeSpecificParams DWORD }
233 { lpvTypeSpecificParams LPVOID }
234 { dwStartDelay DWORD } ;
235 TYPEDEF: DIEFFECT* LPDIEFFECT
236 TYPEDEF: DIEFFECT* LPCDIEFFECT
237 STRUCT: DIEFFECTINFOW
241 { dwStaticParams DWORD }
242 { dwDynamicParams DWORD }
243 { tszName WCHAR[260] } ;
244 TYPEDEF: DIEFFECTINFOW* LPDIEFFECTINFOW
245 TYPEDEF: DIEFFECTINFOW* LPCDIEFFECTINFOW
249 { lpvInBuffer LPVOID }
251 { lpvOutBuffer LPVOID }
252 { cbOutBuffer DWORD } ;
253 TYPEDEF: DIEFFESCAPE* LPDIEFFESCAPE
254 TYPEDEF: DIEFFESCAPE* LPCDIEFFESCAPE
258 { lpDiEffect LPCDIEFFECT }
259 { szFriendlyName CHAR[260] } ;
260 TYPEDEF: DIFILEEFFECT* LPDIFILEEFFECT
261 TYPEDEF: DIFILEEFFECT* LPCDIFILEEFFECT
262 STRUCT: DIDEVICEIMAGEINFOW
263 { tszImagePath WCHAR[260] }
268 { dwcValidPts DWORD }
269 { rgptCalloutLine POINT[5] }
270 { rcCalloutRect RECT }
271 { dwTextAlign DWORD } ;
272 TYPEDEF: DIDEVICEIMAGEINFOW* LPDIDEVICEIMAGEINFOW
273 TYPEDEF: DIDEVICEIMAGEINFOW* LPCDIDEVICEIMAGEINFOW
274 STRUCT: DIDEVICEIMAGEINFOHEADERW
276 { dwSizeImageInfo DWORD }
281 { dwBufferSize DWORD }
282 { dwBufferUsed DWORD }
283 { lprgImageInfoArray DIDEVICEIMAGEINFOW* } ;
284 TYPEDEF: DIDEVICEIMAGEINFOHEADERW* LPDIDEVICEIMAGEINFOHEADERW
285 TYPEDEF: DIDEVICEIMAGEINFOHEADERW* LPCDIDEVICEIMAGEINFOHEADERW
287 STRUCT: DIMOUSESTATE2
291 { rgbButtons BYTE[8] } ;
292 TYPEDEF: DIMOUSESTATE2* LPDIMOUSESTATE2
293 TYPEDEF: DIMOUSESTATE2* LPCDIMOUSESTATE2
302 { rglSlider LONG[2] }
304 { rgbButtons BYTE[128] }
311 { rglVSlider LONG[2] }
318 { rglASlider LONG[2] }
325 { rglFSlider LONG[2] } ;
326 TYPEDEF: DIJOYSTATE2* LPDIJOYSTATE2
327 TYPEDEF: DIJOYSTATE2* LPCDIJOYSTATE2
329 COM-INTERFACE: IDirectInputEffect IUnknown {E7E1F7C0-88D2-11D0-9AD0-00A0C9A06E35}
330 HRESULT Initialize ( HINSTANCE hinst, DWORD dwVersion, REFGUID rguid )
331 HRESULT GetEffectGuid ( LPGUID pguid )
332 HRESULT GetParameters ( LPDIEFFECT peff, DWORD dwFlags )
333 HRESULT SetParameters ( LPCDIEFFECT peff, DWORD dwFlags )
334 HRESULT Start ( DWORD dwIterations, DWORD dwFlags )
336 HRESULT GetEffectStatus ( LPDWORD pdwFlags )
339 HRESULT Escape ( LPDIEFFESCAPE pesc ) ;
341 COM-INTERFACE: IDirectInputDevice8W IUnknown {54D41081-DC15-4833-A41B-748F73A38179}
342 HRESULT GetCapabilities ( LPDIDEVCAPS lpDIDeviceCaps )
343 HRESULT EnumObjects ( LPDIENUMDEVICEOBJECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags )
344 HRESULT GetProperty ( REFGUID rguidProp, LPDIPROPHEADER pdiph )
345 HRESULT SetProperty ( REFGUID rguidProp, LPCDIPROPHEADER pdiph )
347 HRESULT Unacquire ( )
348 HRESULT GetDeviceState ( DWORD cbData, LPVOID lpvData )
349 HRESULT GetDeviceData ( DWORD cbObjectData, LPDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD dwFlags )
350 HRESULT SetDataFormat ( LPCDIDATAFORMAT lpdf )
351 HRESULT SetEventNotification ( HANDLE hEvent )
352 HRESULT SetCooperativeLevel ( HWND hwnd, DWORD dwFlags )
353 HRESULT GetObjectInfo ( LPDIDEVICEOBJECTINSTANCEW rdidoi, DWORD dwObj, DWORD dwHow )
354 HRESULT GetDeviceInfo ( LPDIDEVICEINSTANCEW pdidi )
355 HRESULT RunControlPanel ( HWND hwndOwner, DWORD dwFlags )
356 HRESULT Initialize ( HINSTANCE hinst, DWORD dwVersion, REFGUID rguid )
357 HRESULT CreateEffect ( REFGUID rguid, LPCDIEFFECT lpeff, IDirectInputEffect** ppdeff, LPUNKNOWN punkOuter )
358 HRESULT EnumEffects ( LPDIENUMEFFECTSCALLBACKW lpCallback, LPVOID pvRef, DWORD dwEffType )
359 HRESULT GetEffectInfo ( LPDIEFFECTINFOW pdei, REFGUID rguid )
360 HRESULT GetForceFeedbackState ( LPDWORD pdwOut )
361 HRESULT SendForceFeedbackCommand ( DWORD dwFlags )
362 HRESULT EnumCreatedEffectObjects ( LPDIENUMCREATEDEFFECTOBJECTSCALLBACK lpCallback, LPVOID pvRef, DWORD fl )
363 HRESULT Escape ( LPDIEFFESCAPE pesc )
365 HRESULT SendDeviceData ( DWORD cbObjectData, LPCDIDEVICEOBJECTDATA rgdod, LPDWORD pdwInOut, DWORD fl )
366 HRESULT EnumEffectsInFile ( LPCWSTR lpszFileName, LPDIENUMEFFECTSINFILECALLBACK lpCallback, LPVOID pvRef, DWORD dwFlags )
367 HRESULT WriteEffectToFile ( LPCWSTR lpszFileName, DWORD dwEntries, LPDIFILEEFFECT rgDiFileEffect, DWORD dwFlags )
368 HRESULT BuildActionMap ( LPDIACTIONFORMATW lpdiaf, LPCWSTR lpszUserName, DWORD dwFlags )
369 HRESULT SetActionMap ( LPDIACTIONFORMATW lpdiActionFormat, LPCWSTR lpwszUserName, DWORD dwFlags )
370 HRESULT GetImageInfo ( LPDIDEVICEIMAGEINFOHEADERW lpdiDeviceImageInfoHeader ) ;
372 COM-INTERFACE: IDirectInput8W IUnknown {BF798031-483A-4DA2-AA99-5D64ED369700}
373 HRESULT CreateDevice ( REFGUID rguid, IDirectInputDevice8W** lplpDevice, LPUNKNOWN pUnkOuter )
374 HRESULT EnumDevices ( DWORD dwDevType, LPDIENUMDEVICESCALLBACKW lpCallback, LPVOID pvRef, DWORD dwFlags )
375 HRESULT GetDeviceStatus ( REFGUID rguidInstance )
376 HRESULT RunControlPanel ( HWND hwndOwner, DWORD dwFlags )
377 HRESULT Initialize ( HINSTANCE hinst, DWORD dwVersion )
378 HRESULT FindDevice ( REFGUID rguidClass, LPCWSTR pwszName, LPGUID pguidInstance )
379 HRESULT EnumDevicesBySemantics ( LPCWSTR pwszUserName, LPDIACTIONFORMATW lpdiActionFormat, LPDIENUMDEVICESBYSEMANTICSCBW lpCallback, LPVOID pvRef, DWORD dwFlags )
380 HRESULT ConfigureDevices ( LPDICONFIGUREDEVICESCALLBACK lpdiCallback, LPDICONFIGUREDEVICESPARAMSW lpdiCDParams, DWORD dwFlags, LPVOID pvRefData ) ;
382 FUNCTION: HRESULT DirectInput8Create ( HINSTANCE hinst, DWORD dwVersion, REFIID riidtlf, LPVOID* ppvOut, LPUNKNOWN punkOuter ) ;
384 CONSTANT: DIRECTINPUT_VERSION HEX: 0800
386 CONSTANT: DI8DEVCLASS_ALL 0
387 CONSTANT: DI8DEVCLASS_DEVICE 1
388 CONSTANT: DI8DEVCLASS_POINTER 2
389 CONSTANT: DI8DEVCLASS_KEYBOARD 3
390 CONSTANT: DI8DEVCLASS_GAMECTRL 4
392 CONSTANT: DIEDFL_ALLDEVICES HEX: 00000000
393 CONSTANT: DIEDFL_ATTACHEDONLY HEX: 00000001
394 CONSTANT: DIEDFL_FORCEFEEDBACK HEX: 00000100
395 CONSTANT: DIEDFL_INCLUDEALIASES HEX: 00010000
396 CONSTANT: DIEDFL_INCLUDEPHANTOMS HEX: 00020000
397 CONSTANT: DIEDFL_INCLUDEHIDDEN HEX: 00040000
399 CONSTANT: DIENUM_STOP 0
400 CONSTANT: DIENUM_CONTINUE 1
402 CONSTANT: DIDF_ABSAXIS 1
403 CONSTANT: DIDF_RELAXIS 2
405 CONSTANT: DIDFT_ALL HEX: 00000000
407 CONSTANT: DIDFT_RELAXIS HEX: 00000001
408 CONSTANT: DIDFT_ABSAXIS HEX: 00000002
409 CONSTANT: DIDFT_AXIS HEX: 00000003
411 CONSTANT: DIDFT_PSHBUTTON HEX: 00000004
412 CONSTANT: DIDFT_TGLBUTTON HEX: 00000008
413 CONSTANT: DIDFT_BUTTON HEX: 0000000C
415 CONSTANT: DIDFT_POV HEX: 00000010
416 CONSTANT: DIDFT_COLLECTION HEX: 00000040
417 CONSTANT: DIDFT_NODATA HEX: 00000080
419 CONSTANT: DIDFT_ANYINSTANCE HEX: 00FFFF00
420 ALIAS: DIDFT_INSTANCEMASK DIDFT_ANYINSTANCE
421 : DIDFT_MAKEINSTANCE ( n -- instance ) 8 shift ; inline
422 : DIDFT_GETTYPE ( n -- type ) HEX: FF bitand ; inline
423 : DIDFT_GETINSTANCE ( n -- instance ) -8 shift HEX: FFFF bitand ; inline
424 CONSTANT: DIDFT_FFACTUATOR HEX: 01000000
425 CONSTANT: DIDFT_FFEFFECTTRIGGER HEX: 02000000
426 CONSTANT: DIDFT_OUTPUT HEX: 10000000
427 CONSTANT: DIDFT_VENDORDEFINED HEX: 04000000
428 CONSTANT: DIDFT_ALIAS HEX: 08000000
429 CONSTANT: DIDFT_OPTIONAL HEX: 80000000
431 : DIDFT_ENUMCOLLECTION ( n -- instance ) 8 shift HEX: FFFF bitand ; inline
432 CONSTANT: DIDFT_NOCOLLECTION HEX: 00FFFF00
434 CONSTANT: DIDOI_FFACTUATOR HEX: 00000001
435 CONSTANT: DIDOI_FFEFFECTTRIGGER HEX: 00000002
436 CONSTANT: DIDOI_POLLED HEX: 00008000
437 CONSTANT: DIDOI_ASPECTPOSITION HEX: 00000100
438 CONSTANT: DIDOI_ASPECTVELOCITY HEX: 00000200
439 CONSTANT: DIDOI_ASPECTACCEL HEX: 00000300
440 CONSTANT: DIDOI_ASPECTFORCE HEX: 00000400
441 CONSTANT: DIDOI_ASPECTMASK HEX: 00000F00
442 CONSTANT: DIDOI_GUIDISUSAGE HEX: 00010000
444 CONSTANT: DISCL_EXCLUSIVE HEX: 00000001
445 CONSTANT: DISCL_NONEXCLUSIVE HEX: 00000002
446 CONSTANT: DISCL_FOREGROUND HEX: 00000004
447 CONSTANT: DISCL_BACKGROUND HEX: 00000008
448 CONSTANT: DISCL_NOWINKEY HEX: 00000010
453 CONSTANT: DIMOFS_BUTTON0 12
454 CONSTANT: DIMOFS_BUTTON1 13
455 CONSTANT: DIMOFS_BUTTON2 14
456 CONSTANT: DIMOFS_BUTTON3 15
457 CONSTANT: DIMOFS_BUTTON4 16
458 CONSTANT: DIMOFS_BUTTON5 17
459 CONSTANT: DIMOFS_BUTTON6 18
460 CONSTANT: DIMOFS_BUTTON7 19
462 CONSTANT: DIK_ESCAPE HEX: 01
463 CONSTANT: DIK_1 HEX: 02
464 CONSTANT: DIK_2 HEX: 03
465 CONSTANT: DIK_3 HEX: 04
466 CONSTANT: DIK_4 HEX: 05
467 CONSTANT: DIK_5 HEX: 06
468 CONSTANT: DIK_6 HEX: 07
469 CONSTANT: DIK_7 HEX: 08
470 CONSTANT: DIK_8 HEX: 09
471 CONSTANT: DIK_9 HEX: 0A
472 CONSTANT: DIK_0 HEX: 0B
473 CONSTANT: DIK_MINUS HEX: 0C
474 CONSTANT: DIK_EQUALS HEX: 0D
475 CONSTANT: DIK_BACK HEX: 0E
476 CONSTANT: DIK_TAB HEX: 0F
477 CONSTANT: DIK_Q HEX: 10
478 CONSTANT: DIK_W HEX: 11
479 CONSTANT: DIK_E HEX: 12
480 CONSTANT: DIK_R HEX: 13
481 CONSTANT: DIK_T HEX: 14
482 CONSTANT: DIK_Y HEX: 15
483 CONSTANT: DIK_U HEX: 16
484 CONSTANT: DIK_I HEX: 17
485 CONSTANT: DIK_O HEX: 18
486 CONSTANT: DIK_P HEX: 19
487 CONSTANT: DIK_LBRACKET HEX: 1A
488 CONSTANT: DIK_RBRACKET HEX: 1B
489 CONSTANT: DIK_RETURN HEX: 1C
490 CONSTANT: DIK_LCONTROL HEX: 1D
491 CONSTANT: DIK_A HEX: 1E
492 CONSTANT: DIK_S HEX: 1F
493 CONSTANT: DIK_D HEX: 20
494 CONSTANT: DIK_F HEX: 21
495 CONSTANT: DIK_G HEX: 22
496 CONSTANT: DIK_H HEX: 23
497 CONSTANT: DIK_J HEX: 24
498 CONSTANT: DIK_K HEX: 25
499 CONSTANT: DIK_L HEX: 26
500 CONSTANT: DIK_SEMICOLON HEX: 27
501 CONSTANT: DIK_APOSTROPHE HEX: 28
502 CONSTANT: DIK_GRAVE HEX: 29
503 CONSTANT: DIK_LSHIFT HEX: 2A
504 CONSTANT: DIK_BACKSLASH HEX: 2B
505 CONSTANT: DIK_Z HEX: 2C
506 CONSTANT: DIK_X HEX: 2D
507 CONSTANT: DIK_C HEX: 2E
508 CONSTANT: DIK_V HEX: 2F
509 CONSTANT: DIK_B HEX: 30
510 CONSTANT: DIK_N HEX: 31
511 CONSTANT: DIK_M HEX: 32
512 CONSTANT: DIK_COMMA HEX: 33
513 CONSTANT: DIK_PERIOD HEX: 34
514 CONSTANT: DIK_SLASH HEX: 35
515 CONSTANT: DIK_RSHIFT HEX: 36
516 CONSTANT: DIK_MULTIPLY HEX: 37
517 CONSTANT: DIK_LMENU HEX: 38
518 CONSTANT: DIK_SPACE HEX: 39
519 CONSTANT: DIK_CAPITAL HEX: 3A
520 CONSTANT: DIK_F1 HEX: 3B
521 CONSTANT: DIK_F2 HEX: 3C
522 CONSTANT: DIK_F3 HEX: 3D
523 CONSTANT: DIK_F4 HEX: 3E
524 CONSTANT: DIK_F5 HEX: 3F
525 CONSTANT: DIK_F6 HEX: 40
526 CONSTANT: DIK_F7 HEX: 41
527 CONSTANT: DIK_F8 HEX: 42
528 CONSTANT: DIK_F9 HEX: 43
529 CONSTANT: DIK_F10 HEX: 44
530 CONSTANT: DIK_NUMLOCK HEX: 45
531 CONSTANT: DIK_SCROLL HEX: 46
532 CONSTANT: DIK_NUMPAD7 HEX: 47
533 CONSTANT: DIK_NUMPAD8 HEX: 48
534 CONSTANT: DIK_NUMPAD9 HEX: 49
535 CONSTANT: DIK_SUBTRACT HEX: 4A
536 CONSTANT: DIK_NUMPAD4 HEX: 4B
537 CONSTANT: DIK_NUMPAD5 HEX: 4C
538 CONSTANT: DIK_NUMPAD6 HEX: 4D
539 CONSTANT: DIK_ADD HEX: 4E
540 CONSTANT: DIK_NUMPAD1 HEX: 4F
541 CONSTANT: DIK_NUMPAD2 HEX: 50
542 CONSTANT: DIK_NUMPAD3 HEX: 51
543 CONSTANT: DIK_NUMPAD0 HEX: 52
544 CONSTANT: DIK_DECIMAL HEX: 53
545 CONSTANT: DIK_OEM_102 HEX: 56
546 CONSTANT: DIK_F11 HEX: 57
547 CONSTANT: DIK_F12 HEX: 58
548 CONSTANT: DIK_F13 HEX: 64
549 CONSTANT: DIK_F14 HEX: 65
550 CONSTANT: DIK_F15 HEX: 66
551 CONSTANT: DIK_KANA HEX: 70
552 CONSTANT: DIK_ABNT_C1 HEX: 73
553 CONSTANT: DIK_CONVERT HEX: 79
554 CONSTANT: DIK_NOCONVERT HEX: 7B
555 CONSTANT: DIK_YEN HEX: 7D
556 CONSTANT: DIK_ABNT_C2 HEX: 7E
557 CONSTANT: DIK_NUMPADEQUALS HEX: 8D
558 CONSTANT: DIK_PREVTRACK HEX: 90
559 CONSTANT: DIK_AT HEX: 91
560 CONSTANT: DIK_COLON HEX: 92
561 CONSTANT: DIK_UNDERLINE HEX: 93
562 CONSTANT: DIK_KANJI HEX: 94
563 CONSTANT: DIK_STOP HEX: 95
564 CONSTANT: DIK_AX HEX: 96
565 CONSTANT: DIK_UNLABELED HEX: 97
566 CONSTANT: DIK_NEXTTRACK HEX: 99
567 CONSTANT: DIK_NUMPADENTER HEX: 9C
568 CONSTANT: DIK_RCONTROL HEX: 9D
569 CONSTANT: DIK_MUTE HEX: A0
570 CONSTANT: DIK_CALCULATOR HEX: A1
571 CONSTANT: DIK_PLAYPAUSE HEX: A2
572 CONSTANT: DIK_MEDIASTOP HEX: A4
573 CONSTANT: DIK_VOLUMEDOWN HEX: AE
574 CONSTANT: DIK_VOLUMEUP HEX: B0
575 CONSTANT: DIK_WEBHOME HEX: B2
576 CONSTANT: DIK_NUMPADCOMMA HEX: B3
577 CONSTANT: DIK_DIVIDE HEX: B5
578 CONSTANT: DIK_SYSRQ HEX: B7
579 CONSTANT: DIK_RMENU HEX: B8
580 CONSTANT: DIK_PAUSE HEX: C5
581 CONSTANT: DIK_HOME HEX: C7
582 CONSTANT: DIK_UP HEX: C8
583 CONSTANT: DIK_PRIOR HEX: C9
584 CONSTANT: DIK_LEFT HEX: CB
585 CONSTANT: DIK_RIGHT HEX: CD
586 CONSTANT: DIK_END HEX: CF
587 CONSTANT: DIK_DOWN HEX: D0
588 CONSTANT: DIK_NEXT HEX: D1
589 CONSTANT: DIK_INSERT HEX: D2
590 CONSTANT: DIK_DELETE HEX: D3
591 CONSTANT: DIK_LWIN HEX: DB
592 CONSTANT: DIK_RWIN HEX: DC
593 CONSTANT: DIK_APPS HEX: DD
594 CONSTANT: DIK_POWER HEX: DE
595 CONSTANT: DIK_SLEEP HEX: DF
596 CONSTANT: DIK_WAKE HEX: E3
597 CONSTANT: DIK_WEBSEARCH HEX: E5
598 CONSTANT: DIK_WEBFAVORITES HEX: E6
599 CONSTANT: DIK_WEBREFRESH HEX: E7
600 CONSTANT: DIK_WEBSTOP HEX: E8
601 CONSTANT: DIK_WEBFORWARD HEX: E9
602 CONSTANT: DIK_WEBBACK HEX: EA
603 CONSTANT: DIK_MYCOMPUTER HEX: EB
604 CONSTANT: DIK_MAIL HEX: EC
605 CONSTANT: DIK_MEDIASELECT HEX: ED
607 ALIAS: DIK_BACKSPACE DIK_BACK
608 ALIAS: DIK_NUMPADSTAR DIK_MULTIPLY
609 ALIAS: DIK_LALT DIK_LMENU
610 ALIAS: DIK_CAPSLOCK DIK_CAPITAL
611 ALIAS: DIK_NUMPADMINUS DIK_SUBTRACT
612 ALIAS: DIK_NUMPADPLUS DIK_ADD
613 ALIAS: DIK_NUMPADPERIOD DIK_DECIMAL
614 ALIAS: DIK_NUMPADSLASH DIK_DIVIDE
615 ALIAS: DIK_RALT DIK_RMENU
616 ALIAS: DIK_UPARROW DIK_UP
617 ALIAS: DIK_PGUP DIK_PRIOR
618 ALIAS: DIK_LEFTARROW DIK_LEFT
619 ALIAS: DIK_RIGHTARROW DIK_RIGHT
620 ALIAS: DIK_DOWNARROW DIK_DOWN
621 ALIAS: DIK_PGDN DIK_NEXT
623 ALIAS: DIK_CIRCUMFLEX DIK_PREVTRACK
625 CONSTANT: DI8DEVTYPE_DEVICE HEX: 11
626 CONSTANT: DI8DEVTYPE_MOUSE HEX: 12
627 CONSTANT: DI8DEVTYPE_KEYBOARD HEX: 13
628 CONSTANT: DI8DEVTYPE_JOYSTICK HEX: 14
629 CONSTANT: DI8DEVTYPE_GAMEPAD HEX: 15
630 CONSTANT: DI8DEVTYPE_DRIVING HEX: 16
631 CONSTANT: DI8DEVTYPE_FLIGHT HEX: 17
632 CONSTANT: DI8DEVTYPE_1STPERSON HEX: 18
633 CONSTANT: DI8DEVTYPE_DEVICECTRL HEX: 19
634 CONSTANT: DI8DEVTYPE_SCREENPOINTER HEX: 1A
635 CONSTANT: DI8DEVTYPE_REMOTE HEX: 1B
636 CONSTANT: DI8DEVTYPE_SUPPLEMENTAL HEX: 1C
638 : GET_DIDEVICE_TYPE ( dwType -- type ) HEX: FF bitand ; inline
640 CONSTANT: DIPROPRANGE_NOMIN HEX: 80000000
641 CONSTANT: DIPROPRANGE_NOMAX HEX: 7FFFFFFF
642 CONSTANT: MAXCPOINTSNUM 8
644 CONSTANT: DIPH_DEVICE 0
645 CONSTANT: DIPH_BYOFFSET 1
646 CONSTANT: DIPH_BYID 2
647 CONSTANT: DIPH_BYUSAGE 3
649 : DIMAKEUSAGEDWORD ( UsagePage Usage -- DWORD ) 16 shift bitor ; inline
651 : DIPROP_BUFFERSIZE ( -- alien ) 1 <alien> ; inline
652 : DIPROP_AXISMODE ( -- alien ) 2 <alien> ; inline
654 CONSTANT: DIPROPAXISMODE_ABS 0
655 CONSTANT: DIPROPAXISMODE_REL 1
657 : DIPROP_GRANULARITY ( -- alien ) 3 <alien> ; inline
658 : DIPROP_RANGE ( -- alien ) 4 <alien> ; inline
659 : DIPROP_DEADZONE ( -- alien ) 5 <alien> ; inline
660 : DIPROP_SATURATION ( -- alien ) 6 <alien> ; inline
661 : DIPROP_FFGAIN ( -- alien ) 7 <alien> ; inline
662 : DIPROP_FFLOAD ( -- alien ) 8 <alien> ; inline
663 : DIPROP_AUTOCENTER ( -- alien ) 9 <alien> ; inline
665 CONSTANT: DIPROPAUTOCENTER_OFF 0
666 CONSTANT: DIPROPAUTOCENTER_ON 1
668 : DIPROP_CALIBRATIONMODE ( -- alien ) 10 <alien> ; inline
670 CONSTANT: DIPROPCALIBRATIONMODE_COOKED 0
671 CONSTANT: DIPROPCALIBRATIONMODE_RAW 1
673 : DIPROP_CALIBRATION ( -- alien ) 11 <alien> ; inline
674 : DIPROP_GUIDANDPATH ( -- alien ) 12 <alien> ; inline
675 : DIPROP_INSTANCENAME ( -- alien ) 13 <alien> ; inline
676 : DIPROP_PRODUCTNAME ( -- alien ) 14 <alien> ; inline
677 : DIPROP_JOYSTICKID ( -- alien ) 15 <alien> ; inline
678 : DIPROP_GETPORTDISPLAYNAME ( -- alien ) 16 <alien> ; inline
679 : DIPROP_PHYSICALRANGE ( -- alien ) 18 <alien> ; inline
680 : DIPROP_LOGICALRANGE ( -- alien ) 19 <alien> ; inline
681 : DIPROP_KEYNAME ( -- alien ) 20 <alien> ; inline
682 : DIPROP_CPOINTS ( -- alien ) 21 <alien> ; inline
683 : DIPROP_APPDATA ( -- alien ) 22 <alien> ; inline
684 : DIPROP_SCANCODE ( -- alien ) 23 <alien> ; inline
685 : DIPROP_VIDPID ( -- alien ) 24 <alien> ; inline
686 : DIPROP_USERNAME ( -- alien ) 25 <alien> ; inline
687 : DIPROP_TYPENAME ( -- alien ) 26 <alien> ; inline
689 CONSTANT: GUID_XAxis GUID: {A36D02E0-C9F3-11CF-BFC7-444553540000}
690 CONSTANT: GUID_YAxis GUID: {A36D02E1-C9F3-11CF-BFC7-444553540000}
691 CONSTANT: GUID_ZAxis GUID: {A36D02E2-C9F3-11CF-BFC7-444553540000}
692 CONSTANT: GUID_RxAxis GUID: {A36D02F4-C9F3-11CF-BFC7-444553540000}
693 CONSTANT: GUID_RyAxis GUID: {A36D02F5-C9F3-11CF-BFC7-444553540000}
694 CONSTANT: GUID_RzAxis GUID: {A36D02E3-C9F3-11CF-BFC7-444553540000}
695 CONSTANT: GUID_Slider GUID: {A36D02E4-C9F3-11CF-BFC7-444553540000}
696 CONSTANT: GUID_Button GUID: {A36D02F0-C9F3-11CF-BFC7-444553540000}
697 CONSTANT: GUID_Key GUID: {55728220-D33C-11CF-BFC7-444553540000}
698 CONSTANT: GUID_POV GUID: {A36D02F2-C9F3-11CF-BFC7-444553540000}
699 CONSTANT: GUID_Unknown GUID: {A36D02F3-C9F3-11CF-BFC7-444553540000}
700 CONSTANT: GUID_SysMouse GUID: {6F1D2B60-D5A0-11CF-BFC7-444553540000}
701 CONSTANT: GUID_SysKeyboard GUID: {6F1D2B61-D5A0-11CF-BFC7-444553540000}
702 CONSTANT: GUID_Joystick GUID: {6F1D2B70-D5A0-11CF-BFC7-444553540000}
703 CONSTANT: GUID_SysMouseEm GUID: {6F1D2B80-D5A0-11CF-BFC7-444553540000}
704 CONSTANT: GUID_SysMouseEm2 GUID: {6F1D2B81-D5A0-11CF-BFC7-444553540000}
705 CONSTANT: GUID_SysKeyboardEm GUID: {6F1D2B82-D5A0-11CF-BFC7-444553540000}
706 CONSTANT: GUID_SysKeyboardEm2 GUID: {6F1D2B83-D5A0-11CF-BFC7-444553540000}