home *** CD-ROM | disk | FTP | other *** search
/ Visual Basic Source Code / Visual Basic Source Code.iso / vbsource / powervww / pvdrv.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-05  |  17.8 KB  |  583 lines

  1. //  ____________________________________________________
  2. // |                                                    |
  3. // |  Project:     POWER VIEW INTERFACE                 |
  4. // |  File:        PVDRV.H                              |
  5. // |  Compiler:    WPP386 (10.6)                        |
  6. // |                                                    |
  7. // |  Subject:     Drivers interface                    |
  8. // |                                                    |
  9. // |  Author:      Emil Dotchevski                      |
  10. // |____________________________________________________|
  11. //
  12. // E-mail: zajo@geocities.com
  13. // URL:    http://www.geocities.com/SiliconValley/Bay/3577
  14.  
  15. void __init_drivers( void );
  16. void hook_drivers( void );
  17. void unhook_drivers( void );
  18.  
  19. #ifndef PVDRV_H
  20. #define PVDRV_H
  21.  
  22. //EVENTS DEFINES
  23.  
  24. #define MAX_EVENTS 64                  //events queue max length
  25.  
  26. //hardware events codes
  27. #define evNOTHING     0x0000           //no event pending
  28. #ifndef NOMOUSE
  29. #define evMOUSE_DOWN  0x0001           //mouse button pressed
  30. #define evMOUSE_UP    0x0002           //mouse button depressed
  31. #define evMOUSE_REP   0x0004           //mouse button auto repeat
  32. #define evMOUSE_MOVE  0x0008           //mouse moved
  33. #define evMOUSE_DRAG  0x0010           //mouse moved w/ button down
  34. #define evMOUSE       evMOUSE_DOWN+evMOUSE_UP+evMOUSE_REP+evMOUSE_MOVE+evMOUSE_DRAG
  35.  
  36. #ifdef HGR
  37. #define evMOUSE_HGR_MOVE 0x1000        //mouse moved one pixel
  38. #define evMOUSE_HGR_DRAG 0x2000        //mouse draged one pixel
  39. #define evHGR_MOUSE   evMOUSE_DOWN+evMOUSE_UP+evMOUSE_REP+evMOUSE_HGR_MOVE+evMOUSE_HGR_DRAG
  40. #endif
  41.  
  42. #endif
  43. #define evKEY_PRESS   0x0020           //ascii char
  44. #define evKEY_DOWN    0x0040           //key down (short 9)
  45. #define evKEY_UP      0x0080           //key up (short 9)
  46. #define evKEYBOARD    evKEY_PRESS+evKEY_DOWN+evKEY_UP
  47. #define evCOMMAND     0x0100           //internal command
  48.  
  49. //events priorities
  50. #ifndef NOMOUSE
  51. #define epMOUSE_DOWN  0x1000           //mouse button pressed
  52. #define epMOUSE_UP    0x1000           //mouse button depressed
  53. #define epMOUSE_REP   0x1000           //mouse button auto repeat
  54. #define epMOUSE_MOVE  0x1000           //mouse moved
  55. #define epMOUSE_DRAG  0x1000           //mouse moved w/ button down
  56. #endif
  57. #define epKEY_DOWN    0x2000           //key down (short 9)
  58. #define epKEY_PRESS   0x2000           //ascii char
  59. #define epKEY_UP      0x2000           //key up (short 9)
  60.  
  61. struct Tevent
  62. {
  63.   uint priority;
  64.   void *destination;
  65.   uint code;
  66.   union
  67.   {
  68.     struct
  69.     {
  70.       unsigned long time_passed;
  71.     } idle;
  72. #ifndef NOMOUSE
  73.     struct
  74.     {
  75.       int local_x;       //owner-based local x
  76.       int local_y;       //owner-based local y
  77.       int local_hgr_x;   //owner-based local x
  78.       int local_hgr_y;   //owner-based local y
  79.       boolean inside;      //mouse in the object
  80.       int global_x;      //screen-based x
  81.       int global_y;      //screen-based y
  82.       int global_hgr_x;  //screen-based x
  83.       int global_hgr_y;  //screen-based y
  84.       char button;         //btn number (0,1,2)
  85.       char buttons;        //buttons status
  86.       char clicks;         //fast-clicks number
  87.     } mouse;
  88. #endif
  89.     struct
  90.     {
  91.       char scan_code;  //k'board scan code
  92.       boolean ext_key; //101-k'board key
  93.       uint ascii;      //extended ASCII code
  94.     } keyboard;
  95.     struct
  96.     {
  97.       uint cmd_code;   //internal cmd code
  98.       void *cmd_info;  //pointer to the info
  99.       uint cmd_size;   //info size
  100.     } command;
  101.   } what;
  102. };
  103.  
  104. #define TIME_PASSED what.idle.time_passed
  105. #ifndef NOMOUSE
  106. #define LOCAL_X what.mouse.local_x
  107. #define LOCAL_Y what.mouse.local_y
  108. #define LOCAL_HGR_X what.mouse.local_hgr_x
  109. #define LOCAL_HGR_Y what.mouse.local_hgr_y
  110. #define INSIDE what.mouse.inside
  111. #define GLOBAL_X what.mouse.global_x
  112. #define GLOBAL_Y what.mouse.global_y
  113. #define GLOBAL_HGR_X what.mouse.global_hgr_x
  114. #define GLOBAL_HGR_Y what.mouse.global_hgr_y
  115. #define BUTTON what.mouse.button
  116. #define BUTTONS what.mouse.buttons
  117. #define CLICKS what.mouse.clicks
  118. #endif
  119. #define SCAN_CODE what.keyboard.scan_code
  120. #define EXT_KEY what.keyboard.ext_key
  121. #define ASCII what.keyboard.ascii
  122. #define CMD_CODE what.command.cmd_code
  123. #define CMD_INFO what.command.cmd_info
  124. #define CMD_SIZE what.command.cmd_size
  125.  
  126. //TIMER DEFINES
  127.  
  128. typedef void ( * Tcallback ) ( void );
  129.  
  130. //KEYBOARD DEFINES
  131.  
  132. //scan codes
  133. #define scESC         0x0001
  134. #define sc1           0x0002
  135. #define sc2           0x0003
  136. #define sc3           0x0004
  137. #define sc4           0x0005
  138. #define sc5           0x0006
  139. #define sc6           0x0007
  140. #define sc7           0x0008
  141. #define sc8           0x0009
  142. #define sc9           0x000A
  143. #define sc0           0x000B
  144. #define scMINUS       0x000C //keyboard '-'
  145. #define scEQUAL       0x000D //keyboard '='
  146. #define scBS          0x000E //backspace
  147. #define scTAB         0x000F
  148. #define scQ           0x0010
  149. #define scW           0x0011
  150. #define scE           0x0012
  151. #define scR           0x0013
  152. #define scT           0x0014
  153. #define scY           0x0015
  154. #define scU           0x0016
  155. #define scI           0x0017
  156. #define scO           0x0018
  157. #define scP           0x0019
  158. #define scLBRACKET    0x001A //"["
  159. #define scRBRACKET    0x001B //"]"
  160. #define scENTER       0x001C
  161. #define scCTRL        0x001D
  162. #define scA           0x001E
  163. #define scS           0x001F
  164. #define scD           0x0020
  165. #define scF           0x0021
  166. #define scG           0x0022
  167. #define scH           0x0023
  168. #define scJ           0x0024
  169. #define scK           0x0025
  170. #define scL           0x0026
  171. #define scSEMICOLON   0x0027 //";"
  172. #define scBACK_APOST  0x0028 //"`"
  173. #define scAPOSTROFE   0x0029 //"'"
  174. #define scLSHIFT      0x002A //left shift
  175. #define scBACK_SLASH  0x002B //"\"
  176. #define scZ           0x002C
  177. #define scX           0x002D
  178. #define scC           0x002E
  179. #define scV           0x002F
  180. #define scB           0x0030
  181. #define scN           0x0031
  182. #define scM           0x0032
  183. #define scCOMMA       0x0033 //","
  184. #define scPOINT       0x0034 //"."
  185. #define scSLASH       0x0035 //"/"
  186. #define scRSHIFT      0x0036 //right shift
  187. #define scPRTSC       0x0037 //print screen
  188. #define scALT         0x0038
  189. #define scSPACE       0x0039
  190. #define scCAPS        0x003A
  191. #define scF1          0x003B
  192. #define scF2          0x003C
  193. #define scF3          0x003D
  194. #define scF4          0x003E
  195. #define scF5          0x003F
  196. #define scF6          0x0040
  197. #define scF7          0x0041
  198. #define scF8          0x0042
  199. #define scF9          0x0043
  200. #define scF10         0x0044
  201. #define scNUM         0x0045
  202. #define scSCROLL      0x0046
  203. #define scHOME        0x0047
  204. #define scUP          0x0048
  205. #define scPGUP        0x0049
  206. #define scGRAY_MINUS  0x004A //keypad "-"
  207. #define scLEFT        0x004B //keypad "<-"
  208. #define scCENTER      0x004C //keypad "5"
  209. #define scRIGHT       0x004D //keypad "->"
  210. #define scGRAY_PLUS   0x004E //keypad "+"
  211. #define scEND         0x004F
  212. #define scDOWN        0x0050
  213. #define scPGDN        0x0051
  214. #define scINS         0x0052
  215. #define scDEL         0x0053
  216.  
  217. //ascii codes
  218. #define kF1           0x3B00
  219. #define kF2           0x3C00
  220. #define kF3           0x3D00
  221. #define kF4           0x3E00
  222. #define kF5           0x3F00
  223. #define kF6           0x4000
  224. #define kF7           0x4100
  225. #define kF8           0x4200
  226. #define kF9           0x4300
  227. #define kF10          0x4400
  228. #define kF11          0x8500
  229. #define kF12          0x8600
  230. #define kTAB          0x0009
  231. #define kCTRL_ENTER   0x1C0A
  232. #define kSPACE        0x0020
  233. #define kBS           0x0008
  234. #define kESC          0x001B
  235. #define kENTER        0x000D
  236. #define kUP           0x4800
  237. #define kDOWN         0x5000
  238. #define kLEFT         0x4B00
  239. #define kRIGHT        0x4D00
  240. #define kPG_UP        0x4900
  241. #define kPG_DN        0x5100
  242. #define kHOME         0x4700
  243. #define kEND          0x4F00
  244. #define kINS          0x5200
  245. #define kDEL          0x5300
  246.  
  247. //ctrl ascii codes
  248. #define kCTRL_A       0x0001
  249. #define kCTRL_B       0x0002
  250. #define kCTRL_C       0x0003
  251. #define kCTRL_D       0x0004
  252. #define kCTRL_E       0x0005
  253. #define kCTRL_F       0x0006
  254. #define kCTRL_G       0x0007
  255. #define kCTRL_H       0x0008
  256. #define kCTRL_I       0x0009
  257. #define kCTRL_J       0x000A
  258. #define kCTRL_K       0x000B
  259. #define kCTRL_L       0x000C
  260. #define kCTRL_M       0x000D
  261. #define kCTRL_N       0x000E
  262. #define kCTRL_O       0x000F
  263. #define kCTRL_P       0x0010
  264. #define kCTRL_Q       0x0011
  265. #define kCTRL_R       0x0012
  266. #define kCTRL_S       0x0013
  267. #define kCTRL_T       0x0014
  268. #define kCTRL_U       0x0015
  269. #define kCTRL_V       0x0016
  270. #define kCTRL_W       0x0017
  271. #define kCTRL_X       0x0018
  272. #define kCTRL_Y       0x0019
  273. #define kCTRL_Z       0x001A
  274. #define kCTRL_UP      0x8D00
  275. #define kCTRL_DOWN    0x9100
  276. #define kCTRL_LEFT    0x7300
  277. #define kCTRL_RIGHT   0x7400
  278. #define kCTRL_PG_UP   0x8400
  279. #define kCTRL_PG_DN   0x7600
  280. #define kCTRL_HOME    0x7700
  281. #define kCTRL_END     0x7500
  282. #define kCTRL_INS     0x9200
  283. #define kCTRL_DEL     0x9300
  284. #define kCTRL_TAB     0x9400
  285. #define kCTRL_F1      0x5E00
  286. #define kCTRL_F2      0x5F00
  287. #define kCTRL_F3      0x6000
  288. #define kCTRL_F4      0x6100
  289. #define kCTRL_F5      0x6200
  290. #define kCTRL_F6      0x6300
  291. #define kCTRL_F7      0x6400
  292. #define kCTRL_F8      0x6500
  293. #define kCTRL_F9      0x6600
  294. #define kCTRL_F10     0x6700
  295. #define kCTRL_F11     0x8900
  296. #define kCTRL_F12     0x8A00
  297. #define kCTRL_DIV     0x9500
  298. #define kCTRL_MUL     0x9600
  299. #define kCTRL_MINUS   0x8E00
  300. #define kCTRL_PLUS    0x9000
  301. #define kSYS_RQ       0x7200
  302. #define kCTRL_ESC     0xF100
  303. #define kCTRL_SHIFT_TAB 0xF200
  304.  
  305. //shift ascii codes
  306. #define kSHIFT_F1     0x5400
  307. #define kSHIFT_F2     0x5500
  308. #define kSHIFT_F3     0x5600
  309. #define kSHIFT_F4     0x5700
  310. #define kSHIFT_F5     0x5800
  311. #define kSHIFT_F6     0x5900
  312. #define kSHIFT_F7     0x5A00
  313. #define kSHIFT_F8     0x5B00
  314. #define kSHIFT_F9     0x5C00
  315. #define kSHIFT_F10    0x5D00
  316. #define kSHIFT_F11    0x8700
  317. #define kSHIFT_F12    0x8800
  318. #define kSHIFT_HOME   0x0100
  319. #define kSHIFT_UP     0x0200
  320. #define kSHIFT_PG_UP  0x0300
  321. #define kSHIFT_MINUS  0x0400
  322. #define kSHIFT_LEFT   0x0500
  323. #define kSHIFT_CENTER 0x0600
  324. #define kSHIFT_RIGHT  0x0700
  325. #define kSHIFT_PLUS   0x0800
  326. #define kSHIFT_END    0x0900
  327. #define kSHIFT_DOWN   0x0A00
  328. #define kSHIFT_PG_DN  0x0B00
  329. #define kSHIFT_INS    0x0C00
  330. #define kSHIFT_DEL    0x0D00
  331. #define kSHIFT_TAB    0x0F00
  332.  
  333. //alt ascii codes
  334. #define kALT_0        0x8100
  335. #define kALT_1        0x7800
  336. #define kALT_2        0x7900
  337. #define kALT_3        0x7A00
  338. #define kALT_4        0x7B00
  339. #define kALT_5        0x7C00
  340. #define kALT_6        0x7D00
  341. #define kALT_7        0x7E00
  342. #define kALT_8        0x7F00
  343. #define kALT_9        0x8000
  344. #define kALT_A        0x1E00
  345. #define kALT_B        0x3000
  346. #define kALT_C        0x2E00
  347. #define kALT_D        0x2000
  348. #define kALT_E        0x1200
  349. #define kALT_F        0x2100
  350. #define kALT_G        0x2200
  351. #define kALT_H        0x2300
  352. #define kALT_I        0x1700
  353. #define kALT_J        0x2400
  354. #define kALT_K        0x2500
  355. #define kALT_L        0x2600
  356. #define kALT_M        0x3200
  357. #define kALT_N        0x3100
  358. #define kALT_O        0x1800
  359. #define kALT_P        0x1900
  360. #define kALT_Q        0x1000
  361. #define kALT_R        0x1300
  362. #define kALT_S        0x1F00
  363. #define kALT_T        0x1400
  364. #define kALT_U        0x1600
  365. #define kALT_V        0x2F00
  366. #define kALT_W        0x1100
  367. #define kALT_X        0x2D00
  368. #define kALT_Y        0x1500
  369. #define kALT_Z        0x2C00
  370. #define kALT_UP       0x9800
  371. #define kALT_DOWN     0xA000
  372. #define kALT_LEFT     0x9B00
  373. #define kALT_RIGHT    0x9D00
  374. #define kALT_PG_UP    0x9900
  375. #define kALT_PG_DN    0xA100
  376. #define kALT_HOME     0x9700
  377. #define kALT_END      0x9F00
  378. #define kALT_INS      0xA200
  379. #define kALT_DEL      0xA300
  380. #define kALT_TAB      0xA500
  381. #define kALT_LBRACKET 0x1A00
  382. #define kALT_RBRACKET 0x1B00
  383. #define kALT_BACKAPOST 0x2800
  384. #define kALT_BACKSLASH 0x2B00
  385. #define kALT_BS       0x0EF0
  386.  
  387. #define kALT_F1       0x6800
  388. #define kALT_F2       0x6600
  389. #define kALT_F3       0x6A00
  390. #define kALT_F4       0x6B00
  391. #define kALT_F5       0x6C00
  392. #define kALT_F6       0x6D00
  393. #define kALT_F7       0x6E00
  394. #define kALT_F8       0x6F00
  395. #define kALT_F9       0x7000
  396. #define kALT_F10      0x7100
  397. #define kALT_F11      0x8B00
  398. #define kALT_F12      0x8C00
  399. #define kALT_SPACE    0xF000
  400.  
  401. //shifts management
  402. #define smRSHIFT      0x0001
  403. #define smLSHIFT      0x0002
  404. #define smCTRL        0x0004
  405. #define smALT         0x0008
  406. #define smSCROLL      0x0010
  407. #define smSHIFT       smLSHIFT + smRSHIFT
  408. #define smNUM         0x0020
  409. #define smCAPS        0x0040
  410. #define smINS         0x0080
  411. #define smLCTRL       0x0100
  412. #define smLALT        0x0200
  413.  
  414. //MOUSE DEFINES
  415.  
  416. #ifndef NOMOUSE
  417. struct Tmouse_data
  418. {
  419. //public:
  420.   boolean mouse_enabled;
  421. #ifndef HGR
  422.   boolean graph_cursor;
  423. #endif
  424.   boolean reverse_buttons;
  425.   long multi_click_time;
  426.   long repeat_wait_time;
  427.   long repeat_time;
  428.   char buttons_count;
  429.   int mouse_x;
  430.   int mouse_y;
  431.   int mouse_hgr_x;
  432.   int mouse_hgr_y;
  433.   char mouse_buttons;
  434.  
  435. //private:
  436.   uint old_x;
  437.   uint old_y;
  438.   uint old_hgr_x;
  439.   uint old_hgr_y;
  440.   uint old_buttons;
  441.   uint codes[7];
  442.   uint priorities[7];
  443.   uint reverse[8];
  444.   int multi_click_handle;
  445.   int repeat_handle;
  446.   char click_counter;
  447. #ifndef HGR
  448.   char graph_chars[4];
  449.   int mouse_org_x;
  450.   int mouse_org_y;
  451.   int old_pos_x;
  452.   int old_pos_y;
  453.   int delta_x;
  454.   int delta_y;
  455.   char shape[14];
  456.   char mask[14];
  457.   char cbuf[4];
  458.   char dbuf[64];
  459. #endif
  460. };
  461.  
  462. #define MOUSE_ENABLED mouse_data.mouse_enabled
  463. #ifndef HGR
  464. #define GRAPH_CURSOR mouse_data.graph_cursor
  465. #endif
  466. #define REVERSE_BUTTONS mouse_data.reverse_buttons
  467. #define MULTI_CLICK_TIME mouse_data.multi_click_time
  468. #define REPEAT_WAIT_TIME mouse_data.repeat_wait_time
  469. #define REPEAT_TIME mouse_data.repeat_time
  470. #define BUTTONS_COUNT mouse_data.buttons_count
  471. #define MOUSE_X mouse_data.mouse_x
  472. #define MOUSE_Y mouse_data.mouse_y
  473. #define MOUSE_HGR_X mouse_data.mouse_hgr_x
  474. #define MOUSE_HGR_Y mouse_data.mouse_hgr_y
  475. #define MOUSE_BUTTONS mouse_data.mouse_buttons
  476.  
  477. #endif //NOMOUSE
  478.  
  479. #endif //PVDRV_H
  480.  
  481. //EVENTS HANDLING INTERFACE
  482.  
  483. uint get_system_events_mask( void );
  484. void set_system_events_mask( uint em );
  485. void clear_events( void ); //flush (reset) events queue
  486. boolean event_present( void ); //TRUE if there is event(s) pending
  487. boolean put_event( Tevent &ev ); //put an event in the queue
  488. void get_event( Tevent &ev ); //get event from the queue, if no event pending - evNOTHING
  489. boolean events_overflow( void ); //TRUE if events queue overflow detected
  490.  
  491. //TIMER DRIVER INTERFACE
  492.  
  493. int alloc_timer( void ); //allocate timer for use, return timer handle (or -1)
  494. void event_request( int handle, Tevent &ev, uint ticks ); //put event "ev" after "ticks" timer ticks
  495. void call_request( int handle, Tcallback callback, uint ticks ); //call function "callback" after "ticks" timer ticks
  496. void cancel_request( int handle ); //cancel previously requested timer service
  497. void free_timer( int handle ); //free previously allocated timer
  498.  
  499. //KEYBOARD DRIVER INTERFACE
  500.  
  501. uint get_shifts( void ); //get BIOS shifts state
  502. void put_shifts( uint shift_mask ); //put BIOS shifts state
  503. uint get_key( void ); //get (wait for) key pressed
  504. boolean pressed( uint key ); //TRUE if there is event "key" in the queue
  505. uint lat2alt( uint ascii ); //xlate "key" to "alt+key"
  506. uint alt2lat( uint ascii ); //xlate "alt+key" to "key"
  507. #ifdef CYR
  508. uint alt2cyr( uint ascii ); //xlate "alt+key" to "key"
  509. #endif
  510. uint upcased( uint ascii ); //return upcased key code
  511. uint get_shortcut( char *s ); //scan string "s" for a shortcut and return shortcut key code, or 0
  512.  
  513. //MOUSE DRIVER INTERFACE
  514.  
  515. #ifndef NOMOUSE
  516. #ifndef HGR
  517. void graph_mouse( boolean flag ); //enable/disable graphical mouse pointer
  518. void set_graph_cursor( word *def ); //redefine graphical mouse pointer
  519. #endif
  520. void hide_mouse( void );
  521. void show_mouse( void );
  522. void mouse_goto_xy( int x, int y); //move mouse pointer
  523. void get_mouse_speed( uint &sx, uint &sy ); //get mouse tracking sensitivity
  524. void set_mouse_speed( uint sx, uint sy); //set mouse tracking sensitivity
  525. #ifndef HGR
  526. void set_mouse_mask( uint and_mask, uint or_mask); //set and/or mask for non-graph mouse pointer
  527. void set_mouse_chars( char *gc ); //set 4 chars to be used by graphical mouse pointer
  528. void save_chars_def( void ); //save graphical pointer chars definitions (automatically called on startup)
  529. void restore_chars_def( void ); //restore graphical pointer chars definitions (automatically called on exit)
  530. #endif
  531. #endif
  532.  
  533. #ifndef NOMOUSE
  534. #ifdef DECLARE_PVDRV
  535. Tmouse_data mouse_data =
  536. {
  537. //public:
  538. /* mouse_enabled      */ 1,
  539. #ifndef HGR
  540. /* graph_cursor       */ 1,
  541. #endif
  542. /* reverse_buttons    */ 0,
  543. /* multi_click_time   */ 9,
  544. /* repeat_wait_time   */ 6,
  545. /* repeat_time        */ 1,
  546. /* buttons_count      */ 0,
  547. /* mouse_x            */ 0,
  548. /* mouse_y            */ 0,
  549. /* mouse_hgr_x        */ 0,
  550. /* mouse_hgr_y        */ 0,
  551. /* mouse_buttons      */ 0,
  552.  
  553. //private:
  554. /* old_x              */ 0,
  555. /* old_y              */ 0,
  556. /* old_hgr_x          */ 0,
  557. /* old_hgr_y          */ 0,
  558. /* old_buttons        */ 0,
  559. /* codes[7]           */ { evMOUSE_MOVE, evMOUSE_DOWN, evMOUSE_UP, evMOUSE_DOWN, evMOUSE_UP, evMOUSE_DOWN, evMOUSE_UP },
  560. /* priorities[7]      */ { epMOUSE_MOVE, epMOUSE_DOWN, epMOUSE_UP, epMOUSE_DOWN, epMOUSE_UP, epMOUSE_DOWN, epMOUSE_UP },
  561. /* reverse[8]         */ { 0, 2, 1, 3, 4, 6, 5, 7 },
  562. /* multi_click_handle */ 0,
  563. /* repeat_handle      */ 0,
  564. /* click_counter      */ 0,
  565. #ifndef HGR
  566. /* graph_chars[4]     */ { '╒','╓','╫','╪' },
  567. /* mouse_org_x        */ 0,
  568. /* mouse_org_y        */ 0,
  569. /* old_pos_x          */ 0,
  570. /* old_pos_y          */ 0,
  571. /* delta_x            */ 0,
  572. /* delta_y            */ 0,
  573. /* shape[14]          */
  574. /* mask[14]           */
  575. /* cbuf[4]            */
  576. /* dbuf[64]           */
  577. #endif
  578. };
  579. #else
  580. extern Tmouse_data mouse_data;
  581. #endif
  582. #endif //NOMOUSE
  583.