home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c034 / 7.ddi / INCLUDE / BSESUB.H$ / BSESUB.bin
Encoding:
Text File  |  1989-11-11  |  18.6 KB  |  695 lines

  1. /***************************************************************************\
  2. *
  3. * Module Name: BSESUB.H
  4. *
  5. * OS/2 Base Include File
  6. *
  7. * Copyright (c) 1987-1990, Microsoft Corporation.  All rights reserved.
  8. *
  9. *****************************************************************************
  10. *
  11. * Subcomponents marked with "+" are partially included by default
  12. *   #define:        To include:
  13. *
  14. *   INCL_KBD        KBD
  15. *   INCL_VIO        VIO
  16. *   INCL_MOU        MOU
  17. \***************************************************************************/
  18.  
  19. #ifdef INCL_SUB
  20.  
  21. #define INCL_KBD
  22. #define INCL_VIO
  23. #define INCL_MOU
  24.  
  25. #endif /* INCL_SUB */
  26.  
  27. #if (defined(INCL_KBD) && defined(INCL_VIO) && defined(INCL_MOU))
  28. #define BSESUB_INCLUDED
  29. #endif
  30.  
  31. #ifdef INCL_KBD
  32.  
  33. typedef SHANDLE     HKBD;
  34. typedef HKBD    far *    PHKBD;
  35.  
  36. USHORT APIENTRY KbdRegister(PSZ pszModName, PSZ pszEntryPt, ULONG FunMask);
  37.  
  38. #define KR_KBDCHARIN        0x00000001L
  39. #define KR_KBDPEEK        0x00000002L
  40. #define KR_KBDFLUSHBUFFER    0x00000004L
  41. #define KR_KBDGETSTATUS     0x00000008L
  42. #define KR_KBDSETSTATUS     0x00000010L
  43. #define KR_KBDSTRINGIN        0x00000020L
  44. #define KR_KBDOPEN        0x00000040L
  45. #define KR_KBDCLOSE        0x00000080L
  46. #define KR_KBDGETFOCUS        0x00000100L
  47. #define KR_KBDFREEFOCUS     0x00000200L
  48. #define KR_KBDGETCP        0x00000400L
  49. #define KR_KBDSETCP        0x00000800L
  50. #define KR_KBDXLATE        0x00001000L
  51. #define KR_KBDSETCUSTXT     0x00002000L
  52.  
  53. #define IO_WAIT         0
  54. #define IO_NOWAIT        1
  55.  
  56. USHORT APIENTRY KbdDeRegister(void);
  57.  
  58. /* KBDKEYINFO structure, for KbdCharIn and KbdPeek */
  59.  
  60. #ifndef KBDKEYINFO
  61. typedef struct _KBDKEYINFO {    /* kbci */
  62.     UCHAR    chChar;
  63.     UCHAR    chScan;
  64.     UCHAR    fbStatus;
  65.     UCHAR    bNlsShift;
  66.     USHORT    fsState;
  67.     ULONG    time;
  68. }KBDKEYINFO;
  69. typedef KBDKEYINFO far *PKBDKEYINFO;
  70. #endif
  71.  
  72. USHORT APIENTRY KbdCharIn(PKBDKEYINFO pkbci, USHORT fWait, HKBD hkbd);
  73. USHORT APIENTRY KbdPeek(PKBDKEYINFO pkbci, HKBD hkbd);
  74.  
  75. /* structure for KbdStringIn() */
  76.  
  77. #ifndef STRINGINBUF
  78. typedef struct _STRINGINBUF {    /* kbsi */
  79.     USHORT cb;
  80.     USHORT cchIn;
  81. } STRINGINBUF;
  82. typedef STRINGINBUF far *PSTRINGINBUF;
  83. #endif
  84.  
  85. USHORT APIENTRY KbdStringIn(PCH pch, PSTRINGINBUF pchIn, USHORT fsWait,
  86.                 HKBD hkbd);
  87.  
  88. USHORT APIENTRY KbdFlushBuffer(HKBD hkbd);
  89.  
  90. /* KBDINFO.fsMask */
  91.  
  92. #define KEYBOARD_ECHO_ON            0x0001
  93. #define KEYBOARD_ECHO_OFF           0x0002
  94. #define KEYBOARD_BINARY_MODE        0x0004
  95. #define KEYBOARD_ASCII_MODE         0x0008
  96. #define KEYBOARD_MODIFY_STATE       0x0010
  97. #define KEYBOARD_MODIFY_INTERIM     0x0020
  98. #define KEYBOARD_MODIFY_TURNAROUND  0x0040
  99. #define KEYBOARD_2B_TURNAROUND      0x0080
  100. #define KEYBOARD_SHIFT_REPORT       0x0100
  101.  
  102. #ifndef INCL_DOSDEVIOCTL  /* following constants defined in bsedev.h */
  103.  
  104. /* KBDINFO.fsState/KBDKEYINFO.fsState/KBDTRANS.fsState */
  105.  
  106. #define RIGHTSHIFT     0x0001
  107. #define LEFTSHIFT      0x0002
  108. #define CONTROL        0x0004
  109. #define ALT            0x0008
  110. #define SCROLLLOCK_ON  0x0010
  111. #define NUMLOCK_ON     0x0020
  112. #define CAPSLOCK_ON    0x0040
  113. #define INSERT_ON      0x0080
  114. #define LEFTCONTROL    0x0100
  115. #define LEFTALT        0x0200
  116. #define RIGHTCONTROL   0x0400
  117. #define RIGHTALT       0x0800
  118. #define SCROLLLOCK     0x1000
  119. #define NUMLOCK        0x2000
  120. #define CAPSLOCK       0x4000
  121. #define SYSREQ         0x8000
  122.  
  123. #endif  /* INCL_DOSDEVIOCTL */
  124.  
  125. /* KBDINFO structure, for KbdSet/GetStatus */
  126. #ifndef KBDINFO
  127. typedef struct _KBDINFO {    /* kbst */
  128.     USHORT cb;
  129.     USHORT fsMask;
  130.     USHORT chTurnAround;
  131.     USHORT fsInterim;
  132.     USHORT fsState;
  133. }KBDINFO;
  134. typedef KBDINFO far *PKBDINFO;
  135. #endif
  136.  
  137. USHORT APIENTRY KbdSetStatus(PKBDINFO pkbdinfo, HKBD hkbd);
  138. USHORT APIENTRY KbdGetStatus(PKBDINFO pkbdinfo, HKBD hdbd);
  139.  
  140. USHORT APIENTRY KbdSetCp(USHORT usReserved, USHORT pidCP, HKBD hdbd);
  141. USHORT APIENTRY KbdGetCp(ULONG ulReserved, PUSHORT pidCP, HKBD hkbd);
  142.  
  143. USHORT APIENTRY KbdOpen(PHKBD phkbd);
  144. USHORT APIENTRY KbdClose(HKBD hkbd);
  145.  
  146. USHORT APIENTRY KbdGetFocus(USHORT fWait, HKBD hkbd);
  147. USHORT APIENTRY KbdFreeFocus(HKBD hkbd);
  148.  
  149. USHORT APIENTRY KbdSynch(USHORT fsWait);
  150.  
  151. USHORT APIENTRY KbdSetFgnd(VOID);
  152.  
  153. /* KBDTRANS.fbStatus */
  154.  
  155. #define SHIFT_KEY_IN        0x01
  156. #define CONVERSION_REQUEST  0x20
  157. #define FINAL_CHAR_IN        0x40
  158. #define INTERIM_CHAR_IN     0x80
  159.  
  160. #define KEYBOARD_AT_COMPATABLE    0x0001
  161. #define KEYBOARD_ENHANCED_101    0xAB41
  162. #define KEYBOARD_ENHANCED_102    0xAB41
  163. #define KEYBOARD_ENHANCED_122    0xAB85
  164. #define KEYBOARD_SPACESAVER    0xAB54
  165.  
  166. /* structure for KbdGetHWID() */
  167. #ifndef KBDHWID
  168. typedef struct _KBDHWID {    /* kbhw */
  169.     USHORT cb;
  170.     USHORT idKbd;
  171.     USHORT usReserved1;
  172.     USHORT usReserved2;
  173. } KBDHWID;
  174. typedef KBDHWID far *PKBDHWID;
  175. #endif
  176.  
  177. USHORT APIENTRY KbdGetHWID(PKBDHWID pkbdhwid, HKBD hkbd);
  178.  
  179. /* structure for KbdXlate() */
  180. #ifndef KBDTRANS
  181. typedef struct _KBDTRANS {    /* kbxl */
  182.     UCHAR    chChar;
  183.     UCHAR    chScan;
  184.     UCHAR    fbStatus;
  185.     UCHAR    bNlsShift;
  186.     USHORT    fsState;
  187.     ULONG    time;
  188.     USHORT    fsDD;
  189.     USHORT    fsXlate;
  190.     USHORT    fsShift;
  191.     USHORT    sZero;
  192. } KBDTRANS;
  193. typedef KBDTRANS far *PKBDTRANS;
  194. #endif
  195.  
  196. USHORT APIENTRY KbdXlate(PKBDTRANS pkbdtrans, HKBD hkbd);
  197. USHORT APIENTRY KbdSetCustXt(PUSHORT usCodePage, HKBD hkbd);
  198.  
  199. #endif /* INCL_KBD */
  200.  
  201. #ifdef INCL_VIO
  202.  
  203. typedef SHANDLE         HVIO;
  204. typedef HVIO    far *   PHVIO;
  205.  
  206. USHORT APIENTRY VioRegister(PSZ pszModName, PSZ pszEntryName, ULONG flFun1,
  207.                 ULONG flFun2);
  208.  
  209. /* first parameter registration constants */
  210. #define VR_VIOGETCURPOS     0x00000001L
  211. #define VR_VIOGETCURTYPE    0x00000002L
  212. #define VR_VIOGETMODE        0x00000004L
  213. #define VR_VIOGETBUF        0x00000008L
  214. #define VR_VIOGETPHYSBUF    0x00000010L
  215. #define VR_VIOSETCURPOS     0x00000020L
  216. #define VR_VIOSETCURTYPE    0x00000040L
  217. #define VR_VIOSETMODE        0x00000080L
  218. #define VR_VIOSHOWBUF        0x00000100L
  219. #define VR_VIOREADCHARSTR    0x00000200L
  220. #define VR_VIOREADCELLSTR    0x00000400L
  221. #define VR_VIOWRTNCHAR        0x00000800L
  222. #define VR_VIOWRTNATTR        0x00001000L
  223. #define VR_VIOWRTNCELL        0x00002000L
  224. #define VR_VIOWRTTTY        0x00004000L
  225. #define VR_VIOWRTCHARSTR    0x00008000L
  226.  
  227. #define VR_VIOWRTCHARSTRATT    0x00010000L
  228. #define VR_VIOWRTCELLSTR    0x00020000L
  229. #define VR_VIOSCROLLUP        0x00040000L
  230. #define VR_VIOSCROLLDN        0x00080000L
  231. #define VR_VIOSCROLLLF        0x00100000L
  232. #define VR_VIOSCROLLRT        0x00200000L
  233. #define VR_VIOSETANSI        0x00400000L
  234. #define VR_VIOGETANSI        0x00800000L
  235. #define VR_VIOPRTSC        0x01000000L
  236. #define VR_VIOSCRLOCK        0x02000000L
  237. #define VR_VIOSCRUNLOCK     0x04000000L
  238. #define VR_VIOSAVREDRAWWAIT    0x08000000L
  239. #define VR_VIOSAVREDRAWUNDO    0x10000000L
  240. #define VR_VIOPOPUP        0x20000000L
  241. #define VR_VIOENDPOPUP        0x40000000L
  242. #define VR_VIOPRTSCTOGGLE    0x80000000L
  243.  
  244. /* second parameter registration constants */
  245. #define VR_VIOMODEWAIT        0x00000001L
  246. #define VR_VIOMODEUNDO        0x00000002L
  247. #define VR_VIOGETFONT        0x00000004L
  248. #define VR_VIOGETCONFIG     0x00000008L
  249. #define VR_VIOSETCP        0x00000010L
  250. #define VR_VIOGETCP        0x00000020L
  251. #define VR_VIOSETFONT        0x00000040L
  252. #define VR_VIOGETSTATE        0x00000080L
  253. #define VR_VIOSETSTATE        0x00000100L
  254.  
  255. USHORT APIENTRY VioDeRegister(void);
  256.  
  257. USHORT APIENTRY VioGetBuf(PULONG pLVB, PUSHORT pcbLVB, HVIO hvio);
  258.  
  259. USHORT APIENTRY VioGetCurPos(PUSHORT pusRow, PUSHORT pusColumn, HVIO hvio);
  260. USHORT APIENTRY VioSetCurPos(USHORT usRow, USHORT usColumn, HVIO hvio);
  261.  
  262. /* structure for VioSet/GetCurType() */
  263. #ifndef VIOCURSORINFO
  264. typedef struct _VIOCURSORINFO { /* vioci */
  265.     USHORT    yStart;
  266.     USHORT    cEnd;
  267.     USHORT    cx;
  268.     USHORT    attr;
  269. } VIOCURSORINFO;
  270. typedef VIOCURSORINFO FAR *PVIOCURSORINFO;
  271. #endif
  272.  
  273. USHORT APIENTRY VioGetCurType(PVIOCURSORINFO pvioCursorInfo, HVIO hvio);
  274. USHORT APIENTRY VioSetCurType(PVIOCURSORINFO pvioCursorInfo, HVIO hvio);
  275.  
  276. /* VIOMODEINFO.color constants */
  277.  
  278. #define COLORS_2   0x0001
  279. #define COLORS_4   0x0002
  280. #define COLORS_16  0x0004
  281.  
  282. /* structure for VioSet/GetMode() */
  283. #ifndef VIOMODEINFO
  284. typedef struct _VIOMODEINFO {    /* viomi */
  285.     USHORT cb;
  286.     UCHAR  fbType;
  287.     UCHAR  color;
  288.     USHORT col;
  289.     USHORT row;
  290.     USHORT hres;
  291.     USHORT vres;
  292.     UCHAR  fmt_ID;
  293.     UCHAR  attrib;
  294.     ULONG  buf_addr;
  295.     ULONG  buf_length;
  296.     ULONG  full_length;
  297.     ULONG  partial_length;
  298.     PCH    ext_data_addr;
  299. } VIOMODEINFO;
  300. typedef VIOMODEINFO FAR *PVIOMODEINFO;
  301. #endif
  302.  
  303. #define VGMT_OTHER        0x01
  304. #define VGMT_GRAPHICS        0x02
  305. #define VGMT_DISABLEBURST    0x04
  306.  
  307. USHORT APIENTRY VioGetMode(PVIOMODEINFO pvioModeInfo, HVIO hvio);
  308. USHORT APIENTRY VioSetMode(PVIOMODEINFO pvioModeInfo, HVIO hvio);
  309.  
  310. /* structure for VioGetPhysBuf() */
  311.  
  312. #ifndef VIOPHYSBUF
  313. typedef struct _VIOPHYSBUF {    /* viopb */
  314.     PBYTE    pBuf;
  315.     ULONG    cb;
  316.     SEL    asel[1];
  317. } VIOPHYSBUF;
  318. typedef VIOPHYSBUF far *PVIOPHYSBUF;
  319. #endif
  320.  
  321. USHORT APIENTRY VioGetPhysBuf(PVIOPHYSBUF pvioPhysBuf, USHORT usReserved);
  322.  
  323. USHORT APIENTRY VioReadCellStr(PCH pchCellStr, PUSHORT pcb, USHORT usRow,
  324.                    USHORT usColumn, HVIO hvio);
  325. USHORT APIENTRY VioReadCharStr(PCH pchCellStr, PUSHORT pcb, USHORT usRow,
  326.                    USHORT usColumn, HVIO hvio);
  327. USHORT APIENTRY VioWrtCellStr(PCH pchCellStr, USHORT cb, USHORT usRow,
  328.                   USHORT usColumn, HVIO hvio);
  329. USHORT APIENTRY VioWrtCharStr(PCH pchStr, USHORT cb, USHORT usRow,
  330.                   USHORT usColumn, HVIO hvio);
  331.  
  332. USHORT APIENTRY VioScrollDn(USHORT usTopRow, USHORT usLeftCol,
  333.                 USHORT usBotRow, USHORT usRightCol,
  334.                 USHORT cbLines, PBYTE pCell, HVIO hvio);
  335. USHORT APIENTRY VioScrollUp(USHORT usTopRow, USHORT usLeftCol,
  336.                 USHORT usBotRow, USHORT usRightCol,
  337.                 USHORT cbLines, PBYTE pCell, HVIO hvio);
  338. USHORT APIENTRY VioScrollLf(USHORT usTopRow, USHORT usLeftCol,
  339.                 USHORT usBotRow, USHORT usRightCol,
  340.                 USHORT cbCol, PBYTE pCell, HVIO hvio);
  341. USHORT APIENTRY VioScrollRt(USHORT usTopRow, USHORT usLeftCol,
  342.                 USHORT usBotRow, USHORT usRightCol,
  343.                 USHORT cbCol, PBYTE pCell, HVIO hvio);
  344.  
  345. USHORT APIENTRY VioWrtNAttr(PBYTE pAttr, USHORT cb, USHORT usRow,
  346.                 USHORT usColumn, HVIO hvio);
  347. USHORT APIENTRY VioWrtNCell(PBYTE pCell, USHORT cb, USHORT usRow,
  348.                 USHORT usColumn, HVIO hvio);
  349. USHORT APIENTRY VioWrtNChar(PCH pchChar, USHORT cb, USHORT usRow,
  350.                 USHORT usColumn, HVIO hvio);
  351. USHORT APIENTRY VioWrtTTY(PCH pch, USHORT cb, HVIO hvio);
  352. USHORT APIENTRY VioWrtCharStrAtt(PCH pch, USHORT cb, USHORT usRow,
  353.                  USHORT usColumn, PBYTE pAttr, HVIO hvio);
  354.  
  355. USHORT APIENTRY VioShowBuf(USHORT offLVB, USHORT cb, HVIO hvio);
  356.  
  357.  
  358. #define ANSI_ON         1
  359. #define ANSI_OFF        0
  360.  
  361. USHORT APIENTRY VioSetAnsi(USHORT fAnsi, HVIO hvio);
  362. USHORT APIENTRY VioGetAnsi(PUSHORT pfAnsi, HVIO hvio);
  363.  
  364. USHORT APIENTRY VioPrtSc(HVIO hvio);
  365. USHORT APIENTRY VioPrtScToggle(HVIO hvio);
  366.  
  367. #define VSRWI_SAVEANDREDRAW    0
  368. #define VSRWI_REDRAW        1
  369.  
  370. #define VSRWN_SAVE        0
  371. #define VSRWN_REDRAW        1
  372.  
  373. #define UNDOI_GETOWNER        0
  374. #define UNDOI_RELEASEOWNER    1
  375.  
  376. #define UNDOK_ERRORCODE     0
  377. #define UNDOK_TERMINATE     1
  378.  
  379. USHORT APIENTRY VioRedrawSize(PULONG pcbRedraw);
  380. USHORT APIENTRY VioSavRedrawWait(USHORT usRedrawInd, PUSHORT pNotifyType,
  381.                  USHORT usReserved);
  382. USHORT APIENTRY VioSavRedrawUndo(USHORT usOwnerInd, USHORT usKillInd,
  383.                  USHORT usReserved);
  384.  
  385. #define VMWR_POPUP        0
  386. #define VMWN_POPUP        0
  387.  
  388. USHORT APIENTRY VioModeWait(USHORT usReqType, PUSHORT pNotifyType,
  389.                 USHORT usReserved);
  390. USHORT APIENTRY VioModeUndo(USHORT usOwnerInd, USHORT usKillInd,
  391.                 USHORT usReserved);
  392.  
  393. #define LOCKIO_NOWAIT        0
  394. #define LOCKIO_WAIT        1
  395.  
  396. #define LOCK_SUCCESS        0
  397. #define LOCK_FAIL        1
  398.  
  399. USHORT APIENTRY VioScrLock(USHORT fWait, PUCHAR pfNotLocked, HVIO hvio);
  400. USHORT APIENTRY VioScrUnLock(HVIO hvio);
  401.  
  402. #define VP_NOWAIT        0x0000
  403. #define VP_WAIT         0x0001
  404. #define VP_OPAQUE        0x0000
  405. #define VP_TRANSPARENT        0x0002
  406.  
  407. USHORT APIENTRY VioPopUp(PUSHORT pfWait, HVIO hvio);
  408. USHORT APIENTRY VioEndPopUp(HVIO hvio);
  409.  
  410. /* structure for VioGetConfig() */
  411.  
  412. /* VIOCONFIGINFO.adapter constants */
  413.  
  414. #define DISPLAY_MONOCHROME  0x0000
  415. #define DISPLAY_CGA         0x0001
  416. #define DISPLAY_EGA         0x0002
  417. #define DISPLAY_VGA         0x0003
  418. #define DISPLAY_8514A       0x0007
  419.  
  420. /* VIOCONFIGINFO.display constants */
  421.  
  422. #define MONITOR_MONOCHROME  0x0000
  423. #define MONITOR_COLOR       0x0001
  424. #define MONITOR_ENHANCED    0x0002
  425. #define MONITOR_8503        0x0003
  426. #define MONITOR_851X_COLOR  0x0004
  427. #define MONITOR_8514        0x0009
  428.  
  429. #ifndef VIOCONFIGINFO
  430. typedef struct _VIOCONFIGINFO { /* vioin */
  431.     USHORT    cb;
  432.     USHORT    adapter;
  433.     USHORT    display;
  434.     ULONG    cbMemory;
  435.     USHORT    Configuration;
  436.     USHORT    VDHVersion;
  437.     USHORT    Flags;
  438.     ULONG    HWBufferSize;
  439.     ULONG    FullSaveSize;
  440.     ULONG    PartSaveSize;
  441.     USHORT    EMAdaptersOFF;
  442.     USHORT    EMDisplaysOFF;
  443. } VIOCONFIGINFO;
  444. typedef VIOCONFIGINFO far *PVIOCONFIGINFO;
  445. #endif
  446.  
  447. USHORT APIENTRY VioGetConfig(USHORT usConfigId, PVIOCONFIGINFO pvioin,
  448.                  HVIO hvio);
  449.  
  450. /* structure for VioGet/SetFont() */
  451. #ifndef VIOFONTINFO
  452. typedef struct _VIOFONTINFO {    /* viofi */
  453.     USHORT    cb;
  454.     USHORT    type;
  455.     USHORT    cxCell;
  456.     USHORT    cyCell;
  457.     PVOID    pbData;
  458.     USHORT    cbData;
  459. } VIOFONTINFO;
  460. typedef VIOFONTINFO far *PVIOFONTINFO;
  461. #endif
  462.  
  463. #define VGFI_GETCURFONT     0
  464. #define VGFI_GETROMFONT     1
  465.  
  466. USHORT APIENTRY VioGetFont(PVIOFONTINFO pviofi, HVIO hvio);
  467. USHORT APIENTRY VioSetFont(PVIOFONTINFO pviofi, HVIO hvio);
  468.  
  469. USHORT APIENTRY VioGetCp(USHORT usReserved, PUSHORT pIdCodePage, HVIO hvio);
  470. USHORT APIENTRY VioSetCp(USHORT usReserved, USHORT idCodePage, HVIO hvio);
  471.  
  472. #ifndef VIOPALSTATE
  473. typedef struct _VIOPALSTATE {    /* viopal */
  474.     USHORT    cb;
  475.     USHORT    type;
  476.     USHORT    iFirst;
  477.     USHORT    acolor[1];
  478. }VIOPALSTATE;
  479. typedef VIOPALSTATE far *PVIOPALSTATE;
  480. #endif
  481.  
  482. #ifndef VIOOVERSCAN
  483. typedef struct _VIOOVERSCAN {    /* vioos */
  484.     USHORT    cb;
  485.     USHORT    type;
  486.     USHORT    color;
  487. }VIOOVERSCAN;
  488. typedef VIOOVERSCAN far *PVIOOVERSCAN;
  489. #endif
  490.  
  491. #ifndef VIOINTENSITY
  492. typedef struct _VIOINTENSITY {    /* vioint */
  493.     USHORT    cb;
  494.     USHORT    type;
  495.     USHORT    fs;
  496. }VIOINTENSITY;
  497. typedef VIOINTENSITY far *PVIOINTENSITY;
  498. #endif
  499.  
  500. #ifndef VIOCOLORREG
  501. typedef struct _VIOCOLORREG {    /* viocreg */
  502.     USHORT    cb;
  503.     USHORT    type;
  504.     USHORT    firstcolorreg;
  505.     USHORT    numcolorregs;
  506.     PCH    colorregaddr;
  507. }VIOCOLORREG;
  508. typedef VIOCOLORREG far *PVIOCOLORREG;
  509. #endif
  510.  
  511. #ifndef VIOSETULINELOC
  512. typedef struct _VIOSETULINELOC { /* viouline */
  513.     USHORT    cb;
  514.     USHORT    type;
  515.     USHORT    scanline;
  516. }VIOSETULINELOC;
  517. typedef VIOSETULINELOC far *PVIOSETULINELOC;
  518. #endif
  519.  
  520. #ifndef VIOSETTARGET
  521. typedef struct _VIOSETTARGET {    /* viosett */
  522.     USHORT    cb;
  523.     USHORT    type;
  524.     USHORT    defaultalgorithm;
  525. }VIOSETTARGET;
  526. typedef VIOSETTARGET far *PVIOSETTARGET;
  527. #endif
  528.  
  529. USHORT APIENTRY VioGetState(PVOID pState, HVIO hvio);
  530. USHORT APIENTRY VioSetState(PVOID pState, HVIO hvio);
  531.  
  532. #endif /* INCL_VIO */
  533.  
  534. #ifdef INCL_MOU
  535.  
  536. typedef SHANDLE     HMOU;
  537. typedef HMOU    far *    PHMOU;
  538.  
  539. USHORT APIENTRY MouRegister(PSZ pszModName, PSZ pszEntryName, ULONG flFuns);
  540.  
  541. #define MR_MOUGETNUMBUTTONS    0x00000001L
  542. #define MR_MOUGETNUMMICKEYS    0x00000002L
  543. #define MR_MOUGETDEVSTATUS    0x00000004L
  544. #define MR_MOUGETNUMQUEEL    0x00000008L
  545. #define MR_MOUREADEVENTQUE    0x00000010L
  546. #define MR_MOUGETSCALEFACT    0x00000020L
  547. #define MR_MOUGETEVENTMASK    0x00000040L
  548. #define MR_MOUSETSCALEFACT    0x00000080L
  549. #define MR_MOUSETEVENTMASK    0x00000100L
  550. #define MR_MOUOPEN        0x00000800L
  551. #define MR_MOUCLOSE        0x00001000L
  552. #define MR_MOUGETPTRSHAPE    0x00002000L
  553. #define MR_MOUSETPTRSHAPE    0x00004000L
  554. #define MR_MOUDRAWPTR        0x00008000L
  555. #define MR_MOUREMOVEPTR     0x00010000L
  556. #define MR_MOUGETPTRPOS     0x00020000L
  557. #define MR_MOUSETPTRPOS     0x00040000L
  558. #define MR_MOUINITREAL        0x00080000L
  559. #define MR_MOUSETDEVSTATUS    0x00100000L
  560.  
  561. USHORT APIENTRY MouDeRegister(void);
  562.  
  563. USHORT APIENTRY MouFlushQue(HMOU hmou);
  564.  
  565. #define MHK_BUTTON1        0x0001
  566. #define MHK_BUTTON2        0x0002
  567. #define MHK_BUTTON3        0x0004
  568.  
  569. /* structure for MouGet/SetPtrPos() */
  570. #ifndef PTRLOC
  571. typedef struct _PTRLOC { /* moupl */
  572.     USHORT row;
  573.     USHORT col;
  574. } PTRLOC;
  575. typedef PTRLOC far *PPTRLOC;
  576. #endif
  577.  
  578. USHORT APIENTRY MouGetPtrPos(PPTRLOC pmouLoc, HMOU hmou);
  579. USHORT APIENTRY MouSetPtrPos(PPTRLOC pmouLoc, HMOU hmou);
  580.  
  581. /* structure for MouGet/SetPtrShape() */
  582. #ifndef PTRSHAPE
  583. typedef struct _PTRSHAPE { /* moups */
  584.     USHORT cb;
  585.     USHORT col;
  586.     USHORT row;
  587.     USHORT colHot;
  588.     USHORT rowHot;
  589. } PTRSHAPE;
  590. typedef PTRSHAPE far *PPTRSHAPE;
  591. #endif
  592.  
  593. USHORT APIENTRY MouSetPtrShape(PBYTE pBuf, PPTRSHAPE pmoupsInfo, HMOU hmou);
  594. USHORT APIENTRY MouGetPtrShape(PBYTE pBuf, PPTRSHAPE pmoupsInfo, HMOU hmou);
  595.  
  596. /* MouGetDevStatus/MouSetDevStatus device status constants */
  597.  
  598. #define MOUSE_QUEUEBUSY         0x0001
  599. #define MOUSE_BLOCKREAD         0x0002
  600. #define MOUSE_FLUSH             0x0004
  601. #define MOUSE_UNSUPPORTED_MODE  0x0008
  602. #define MOUSE_DISABLED          0x0100
  603. #define MOUSE_MICKEYS           0x0200
  604.  
  605. USHORT APIENTRY MouGetDevStatus(PUSHORT pfsDevStatus, HMOU hmou);
  606.  
  607. USHORT APIENTRY MouGetNumButtons(PUSHORT pcButtons, HMOU hmou);
  608. USHORT APIENTRY MouGetNumMickeys(PUSHORT pcMickeys, HMOU hmou);
  609.  
  610. /* MouReadEventQue */
  611.  
  612. #define MOU_NOWAIT  0x0000
  613. #define MOU_WAIT    0x0001
  614.  
  615. /* structure for MouReadEventQue() */
  616. #ifndef MOUEVENTINFO
  617. typedef struct _MOUEVENTINFO { /* mouev */
  618.     USHORT fs;
  619.     ULONG  time;
  620.     USHORT row;
  621.     USHORT col;
  622. }MOUEVENTINFO;
  623. typedef MOUEVENTINFO far *PMOUEVENTINFO;
  624. #endif
  625.  
  626. USHORT APIENTRY MouReadEventQue(PMOUEVENTINFO pmouevEvent, PUSHORT pfWait,
  627.                 HMOU hmou);
  628.  
  629. /* structure for MouGetNumQueEl() */
  630. #ifndef MOUQUEINFO
  631. typedef struct _MOUQUEINFO {    /* mouqi */
  632.     USHORT cEvents;
  633.     USHORT cmaxEvents;
  634. } MOUQUEINFO;
  635. typedef MOUQUEINFO far *PMOUQUEINFO;
  636. #endif
  637.  
  638. USHORT APIENTRY MouGetNumQueEl(PMOUQUEINFO qmouqi, HMOU hmou);
  639.  
  640. /* MouGetEventMask/MouSetEventMask events */
  641.  
  642. #define MOUSE_MOTION                0x0001
  643. #define MOUSE_MOTION_WITH_BN1_DOWN  0x0002
  644. #define MOUSE_BN1_DOWN              0x0004
  645. #define MOUSE_MOTION_WITH_BN2_DOWN  0x0008
  646. #define MOUSE_BN2_DOWN              0x0010
  647. #define MOUSE_MOTION_WITH_BN3_DOWN  0x0020
  648. #define MOUSE_BN3_DOWN              0x0040
  649.  
  650.  
  651. USHORT APIENTRY MouGetEventMask(PUSHORT pfsEvents, HMOU hmou);
  652. USHORT APIENTRY MouSetEventMask(PUSHORT pfsEvents, HMOU hmou);
  653.  
  654. /* structure for MouGet/SetScaleFact() */
  655. #ifndef SCALEFACT
  656. typedef struct _SCALEFACT { /* mousc */
  657.     USHORT rowScale;
  658.     USHORT colScale;
  659. } SCALEFACT;
  660. typedef SCALEFACT far *PSCALEFACT;
  661. #endif
  662.  
  663. USHORT APIENTRY MouGetScaleFact(PSCALEFACT pmouscFactors, HMOU hmou);
  664. USHORT APIENTRY MouSetScaleFact(PSCALEFACT pmouscFactors, HMOU hmou);
  665.  
  666. USHORT APIENTRY MouOpen(PSZ pszDvrName, PHMOU phmou);
  667. USHORT APIENTRY MouClose(HMOU hmou);
  668.  
  669. /* structure for MouRemovePtr() */
  670. #ifndef NOPTRRECT
  671. typedef struct _NOPTRRECT { /* mourt */
  672.     USHORT row;
  673.     USHORT col;
  674.     USHORT cRow;
  675.     USHORT cCol;
  676. } NOPTRRECT;
  677. typedef NOPTRRECT far *PNOPTRRECT;
  678. #endif
  679.  
  680. USHORT APIENTRY MouRemovePtr(PNOPTRRECT pmourtRect, HMOU hmou);
  681.  
  682. USHORT APIENTRY MouDrawPtr(HMOU hmou);
  683.  
  684. #define MOU_NODRAW        0x0001
  685. #define MOU_DRAW        0x0000
  686. #define MOU_MICKEYS        0x0002
  687. #define MOU_PELS        0x0000
  688.  
  689. USHORT APIENTRY MouSetDevStatus(PUSHORT pfsDevStatus, HMOU hmou);
  690. USHORT APIENTRY MouInitReal(PSZ);
  691.  
  692. USHORT APIENTRY MouSynch(USHORT pszDvrName);
  693.  
  694. #endif /* INCL_MOU */
  695.