home *** CD-ROM | disk | FTP | other *** search
/ POINT Software Programming / PPROG1.ISO / pascal / visionix / vkbdi.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-12-12  |  9.8 KB  |  395 lines

  1. {
  2. ════════════════════════════════════════════════════════════════════════════
  3.  
  4.  Visionix OS/2 16-Bit KBD DLL API Import Unit
  5.  Copyright 1993 Visionix
  6.  ALL RIGHTS RESERVED
  7.  
  8. ────────────────────────────────────────────────────────────────────────────
  9.  
  10.  Revision history in reverse chronological order:
  11.  
  12.  Initials  Date      Comment
  13.  --------  --------  -------------------------------------------------------
  14.  
  15.  jrt       12/11/93  First logged revision.
  16.  
  17. ────────────────────────────────────────────────────────────────────────────
  18. }
  19.  
  20.  
  21.  
  22.  
  23. Unit VKbdI;
  24.  
  25. Interface
  26.  
  27. Uses
  28.  
  29.   VTypes2u;
  30.  
  31.  
  32. Const
  33.  
  34.   { KbdRegister constants }
  35.  
  36.   KR_KBDCHARIN                = $00000001;
  37.   KR_KBDPEEK                  = $00000002;
  38.   KR_KBDFLUSHBUFFER           = $00000004;
  39.   KR_KBDGETSTATUS             = $00000008;
  40.   KR_KBDSETSTATUS             = $00000010;
  41.   KR_KBDSTRINGIN              = $00000020;
  42.   KR_KBDOPEN                  = $00000040;
  43.   KR_KBDCLOSE                 = $00000080;
  44.   KR_KBDGETFOCUS              = $00000100;
  45.   KR_KBDFREEFOCUS             = $00000200;
  46.   KR_KBDGETCP                 = $00000400;
  47.   KR_KBDSETCP                 = $00000800;
  48.   KR_KBDXLATE                 = $00001000;
  49.   KR_KBDSETCUSTXT             = $00002000;
  50.  
  51.   { ??? Constants }
  52.  
  53.   IO_WAIT                     = 0;
  54.   IO_NOWAIT                   = 1;
  55.  
  56.   { TKbdInfo.Mask constants }
  57.  
  58.   KEYBOARD_ECHO_ON            = $0001;
  59.   KEYBOARD_ECHO_OFF           = $0002;
  60.   KEYBOARD_BINARY_MODE        = $0004;
  61.   KEYBOARD_ASCII_MODE         = $0008;
  62.   KEYBOARD_MODIFY_STATE       = $0010;
  63.   KEYBOARD_MODIFY_INTERIM     = $0020;
  64.   KEYBOARD_MODIFY_TURNAROUND  = $0040;
  65.   KEYBOARD_2B_TURNAROUND      = $0080;
  66.   KEYBOARD_SHIFT_REPORT       = $0100;
  67.  
  68.   { TKbdInfo.Status / TKbdKeyInfo.State / KBDTrans.State constants }
  69.  
  70.   KBDSTF_RIGHTSHIFT           = $0001;
  71.   KBDSTF_LEFTSHIFT            = $0002;
  72.   KBDSTF_CONTROL              = $0004;
  73.   KBDSTF_ALT                  = $0008;
  74.   KBDSTF_SCROLLLOCK_ON        = $0010;
  75.   KBDSTF_NUMLOCK_ON           = $0020;
  76.   KBDSTF_CAPSLOCK_ON          = $0040;
  77.   KBDSTF_INSERT_ON            = $0080;
  78.   KBDSTF_LEFTCONTROL          = $0100;
  79.   KBDSTF_LEFTALT              = $0200;
  80.   KBDSTF_RIGHTCONTROL         = $0400;
  81.   KBDSTF_RIGHTALT             = $0800;
  82.   KBDSTF_SCROLLLOCK           = $1000;
  83.   KBDSTF_NUMLOCK              = $2000;
  84.   KBDSTF_CAPSLOCK             = $4000;
  85.   KBDSTF_SYSREQ               = $8000;
  86.  
  87.   { TKbdTrans.status contants }
  88.  
  89.   KBDTRF_SHIFT_KEY_IN         = $01;
  90.   KBDTRF_CONVERSION_REQUEST   = $20;
  91.   KBDTRF_FINAL_CHAR_IN        = $40;
  92.   KBDTRF_INTERIM_CHAR_IN      = $80;
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103. Type
  104.  
  105.  
  106.   THKBD = WORD;
  107.  
  108.  
  109.   TKbdKeyInfo = RECORD
  110.  
  111.     TheChar       : CHAR;
  112.     Scan          : CHAR;
  113.     Status        : BYTE;
  114.     ShiftStatus   : BYTE;
  115.     State         : WORD;
  116.     Time          : LONGINT;
  117.  
  118.   END;
  119.  
  120.   PKbdKeyInfo = ^TKbdKeyInfo;
  121.  
  122.  
  123.  
  124.   TKBDInfo = RECORD
  125.  
  126.     CB           : WORD;
  127.     Mask         : WORD;
  128.     TurnAroundCh : WORD;
  129.     Interim      : WORD;
  130.     State        : WORD;
  131.  
  132.   END;
  133.  
  134.   PKBDInfo = ^TKBDInfo;
  135.  
  136.  
  137.   TStringInBuff = RECORD
  138.  
  139.     CB     : WORD;
  140.     ChIn   : WORD;
  141.  
  142.   END;
  143.  
  144.   PStringInBuff = ^TStringInBuff;
  145.  
  146.  
  147.   TKBDTrans = RECORD
  148.  
  149.     TheChar       : CHAR;
  150.     Scan          : CHAR;
  151.     Status        : BYTE;
  152.     ShiftStatus   : BYTE;
  153.     State         : WORD;
  154.     Time          : LONGINT;
  155.     FSDD          : WORD;
  156.     FSXLate       : WORD;
  157.     FSShift       : WORD;
  158.     Zero          : WORD;
  159.  
  160.   END;
  161.  
  162.   PKbdTrans = ^TKbdTrans;
  163.  
  164.  
  165.   TKbdHWID = RECORD
  166.  
  167.     CB            : WORD;
  168.     KeyboardID    : WORD;
  169.     Reserved1     : WORD;
  170.     Reserved2     : WORD;
  171.  
  172.   END;
  173.  
  174.   PKbdHWID = ^TKbdHWID;
  175.  
  176.  
  177.  
  178. Function  KbdCharIn(              KeyInfo        : PKbdKeyInfo;
  179.                                   WaitFlag       : WORD;
  180.                                   KBDHandle      : THKBD        ) : WORD;
  181.  
  182.  
  183. Function  KbdClose(               KBDHandle      : THKBD        ) : WORD;
  184.  
  185. Function  KbdDeRegister                                           : WORD;
  186.  
  187. Function  KbdFlushBuffer(         KBDHandle      : THKBD        ) : WORD;
  188.  
  189. Function  KbdFreeFocus(           KBDHandle      : THKBD        ) : WORD;
  190.  
  191. Function  KbdGetCP(               Reserved       : LONGINT;
  192.                               Var CodePage       : WORD;
  193.                                   KBDHandle      : THKBD        ) : WORD;
  194.  
  195. Function  KbdGetHWID(             KBDHwid       : PKbdHWID;
  196.                                   KBDHandle     : THKBD         ) : WORD;
  197.  
  198.  
  199. Function  KbdGetFocus(            WaitFlag       : WORD;
  200.                                   KBDHandle      : THKBD        ) : WORD;
  201.  
  202. Function  KbdGetStatus(           KbdInfo        : PKBDInfo;
  203.                                   KBDHandle      : THKBD        ) : WORD;
  204.  
  205. Function  KbdOpen(            Var KBDHandle      : THKBD        ) : WORD;
  206.  
  207. Function  KbdPeek(                KeyInfo        : PKbdKeyInfo;
  208.                                   KBDHandle      : THKBD        ) : WORD;
  209.  
  210. Function  KbdRegister(            ModuleName     : PCHAR;
  211.                                   EntryName      : PCHAR;
  212.                                   FuncFlags      : LONGINT      ) : WORD;
  213.  
  214. Function  KbdSetCP(               Reserved       : LONGINT;
  215.                                   CodePage       : WORD;
  216.                                   KBDHandle      : THKBD        ) : WORD;
  217.  
  218. Function  KbdSetCustXt(           TransTable     : POINTER;
  219.                                   KBDHandle      : THKBD        ) : WORD;
  220.  
  221.  
  222. Function  KbdSetFgnd                                              : WORD;
  223.  
  224. Function  KbdSetHWID(             KBDHwid       : PKbdHWID;
  225.                                   KBDHandle     : THKBD         ) : WORD;
  226.  
  227. Function  KbdSetStatus(           KbdInfo        : PKBDInfo;
  228.                                   KBDHandle      : THKBD        ) : WORD;
  229.  
  230. Function  KbdStringIn(            Buff           : POINTER;
  231.                                   StringInBuff   : PStringInBuff;
  232.                                   WaitFlag       : WORD;
  233.                                   KBDHandle      : THKBD        ) : WORD;
  234.  
  235.  
  236. Function  KbdSync(                WaitFlag       : WORD         ) : WORD;
  237.  
  238. Function  KbdXlate(               KbdTrans       : PKBDTrans;
  239.                                   KBDHandle      : THKBD        ) : WORD;
  240.  
  241.  
  242.  
  243. Implementation
  244.  
  245.  
  246. Function  KbdCharIn(              KeyInfo        : PKbdKeyInfo;
  247.                                   WaitFlag       : WORD;
  248.                                   KBDHandle      : THKBD        ) : WORD;
  249.  
  250.   External 'KBDCALLS' Index 4;
  251.  
  252.  
  253.  
  254.  
  255. Function  KbdClose(               KBDHandle      : THKBD        ) : WORD;
  256.  
  257.   External 'KBDCALLS' Index 17;
  258.  
  259.  
  260.  
  261.  
  262. Function  KbdDeRegister                                           : WORD;
  263.  
  264.   External 'KBDCALLS' Index 20;
  265.  
  266.  
  267.  
  268.  
  269. Function  KbdFlushBuffer(         KBDHandle      : THKBD        ) : WORD;
  270.  
  271.   External 'KBDCALLS' Index 13;
  272.  
  273.  
  274.  
  275.  
  276. Function  KbdFreeFocus(           KBDHandle      : THKBD        ) : WORD;
  277.  
  278.   External 'KBDCALLS' Index 18;
  279.  
  280.  
  281. Function  KbdGetCP(               Reserved       : LONGINT;
  282.                               Var CodePage       : WORD;
  283.                                   KBDHandle      : THKBD        ) : WORD;
  284.  
  285.   External 'KBDCALLS' Index 3;
  286.  
  287.  
  288.  
  289. Function  KbdGetHWID(             KBDHwid       : PKbdHWID;
  290.                                   KBDHandle     : THKBD         ) : WORD;
  291.  
  292.   External 'KBDCALLS' Index 24;
  293.  
  294.  
  295. Function  KbdGetFocus(            WaitFlag       : WORD;
  296.                                   KBDHandle      : THKBD        ) : WORD;
  297.  
  298.  
  299.   External 'KBDCALLS' Index 12;
  300.  
  301.  
  302.  
  303. Function  KbdGetStatus(           KbdInfo        : PKBDInfo;
  304.                                   KBDHandle      : THKBD        ) : WORD;
  305.  
  306.   External 'KBDCALLS' Index 10;
  307.  
  308.  
  309.  
  310. Function  KbdOpen(            Var KBDHandle      : THKBD        ) : WORD;
  311.  
  312.  
  313.   External 'KBDCALLS' Index 23;
  314.  
  315.  
  316.  
  317. Function  KbdPeek(                KeyInfo        : PKbdKeyInfo;
  318.                                   KBDHandle      : THKBD        ) : WORD;
  319.  
  320.   External 'KBDCALLS' Index 22;
  321.  
  322.  
  323.  
  324.  
  325. Function  KbdRegister(            ModuleName     : PCHAR;
  326.                                   EntryName      : PCHAR;
  327.                                   FuncFlags      : LONGINT      ) : WORD;
  328.  
  329.   External 'KBDCALLS' Index 8;
  330.  
  331.  
  332.  
  333.  
  334. Function  KbdSetCP(               Reserved       : LONGINT;
  335.                                   CodePage       : WORD;
  336.                                   KBDHandle      : THKBD        ) : WORD;
  337.  
  338.  
  339.   External 'KBDCALLS' Index 5;
  340.  
  341.  
  342.  
  343. Function  KbdSetCustXt(           TransTable     : POINTER;
  344.                                   KBDHandle      : THKBD        ) : WORD;
  345.  
  346.   External 'KBDCALLS' Index 1;
  347.  
  348.  
  349.  
  350.  
  351. Function  KbdSetFgnd                                              : WORD;
  352.  
  353.   External 'KBDCALLS' Index 21;
  354.  
  355.  
  356. Function  KbdSetHWID(             KBDHwid       : PKbdHWID;
  357.                                   KBDHandle     : THKBD         ) : WORD;
  358.  
  359.   External 'KBDCALLS' Index 25;
  360.  
  361.  
  362. Function  KbdSetStatus(           KbdInfo        : PKBDInfo;
  363.                                   KBDHandle      : THKBD        ) : WORD;
  364.  
  365.   External 'KBDCALLS' Index 11;
  366.  
  367.  
  368.  
  369. Function  KbdStringIn(            Buff           : POINTER;
  370.                                   StringInBuff   : PStringInBuff;
  371.                                   WaitFlag       : WORD;
  372.                                   KBDHandle      : THKBD        ) : WORD;
  373.  
  374.   External 'KBDCALLS' Index 9;
  375.  
  376.  
  377.  
  378.  
  379. Function  KbdSync(                WaitFlag       : WORD         ) : WORD;
  380.  
  381.   External 'KBDCALLS' Index 7;
  382.  
  383.  
  384.  
  385. Function  KbdXlate(               KbdTrans       : PKBDTrans;
  386.                                   KBDHandle      : THKBD        ) : WORD;
  387.  
  388.   External 'KBDCALLS' Index 14;
  389.  
  390.  
  391.  
  392.  
  393. BEGIN
  394.  
  395. END.