Line | |
---|
1 | #include <stdio.h>
|
---|
2 | #include <stdlib.h>
|
---|
3 | #include <string.h>
|
---|
4 | #define INCL_DOS
|
---|
5 | #define INCL_WIN
|
---|
6 | #define INCL_BASE
|
---|
7 | #include <os2.h>
|
---|
8 | #include "vio32.h"
|
---|
9 |
|
---|
10 |
|
---|
11 | BOOL filter1F(ULONG *eventType,VIO32EVENTINFO *event,VOID *filterData){
|
---|
12 | switch (*eventType){
|
---|
13 | case WM_CHAR:
|
---|
14 | printf("1WM_CHAR\n");
|
---|
15 | break;
|
---|
16 | case VIO_CHAR:
|
---|
17 | printf("1VIO_CHAR\n");
|
---|
18 | break;
|
---|
19 | case MON_CHAR:
|
---|
20 | printf("1MON_CHAR\n");
|
---|
21 | break;
|
---|
22 | case WM_MOVE:{
|
---|
23 | printf("1WM_MOVE\n");
|
---|
24 | } break;
|
---|
25 | default:
|
---|
26 | break;
|
---|
27 | }
|
---|
28 | return FALSE;
|
---|
29 | }
|
---|
30 |
|
---|
31 | BOOL filter2F(ULONG *eventType,VIO32EVENTINFO *event,VOID *filterData){
|
---|
32 | switch (*eventType){
|
---|
33 | case WM_CHAR:
|
---|
34 | printf("2WM_CHAR\n");
|
---|
35 | break;
|
---|
36 | case VIO_CHAR:
|
---|
37 | printf("2VIO_CHAR\n");
|
---|
38 | break;
|
---|
39 | case MON_CHAR:
|
---|
40 | printf("2MON_CHAR\n");
|
---|
41 | break;
|
---|
42 | case WM_MOVE:{
|
---|
43 | printf("2WM_MOVE\n");
|
---|
44 | } break;
|
---|
45 | case KBD32_CHAR:
|
---|
46 | printf("2KBD32_CHAR\n");
|
---|
47 | break;
|
---|
48 | case VIO32_MOU:
|
---|
49 | printf("2VIO32_MOU\n");
|
---|
50 | break;
|
---|
51 | default:
|
---|
52 | break;
|
---|
53 | }
|
---|
54 | return FALSE;
|
---|
55 | }
|
---|
56 |
|
---|
57 | vio32Filter filter1={NULL,(VOID *)"filter1",filter1F};
|
---|
58 | vio32Filter filter2={NULL,(VOID *)"filter2",filter2F};
|
---|
59 |
|
---|
60 |
|
---|
61 | void main(int argc, char **argv){
|
---|
62 |
|
---|
63 | vio32Open();
|
---|
64 |
|
---|
65 | kbd32SetMode(0);
|
---|
66 |
|
---|
67 | ULONG where = VIO32_PRE_FIRST;
|
---|
68 | kbd32AddFilter(&filter1,&where);
|
---|
69 | where = VIO32_POST_FIRST;
|
---|
70 | kbd32AddFilter(&filter2,&where);
|
---|
71 |
|
---|
72 | USHORT fs;
|
---|
73 | UCHAR cRepeat;
|
---|
74 | UCHAR scancode;
|
---|
75 | USHORT chr;
|
---|
76 | USHORT vkey;
|
---|
77 | while(1){
|
---|
78 | KBD32KEYINFO key;
|
---|
79 | // DosSleep(1000);
|
---|
80 | BOOL ret = kbd32GetKey(&key,2000);
|
---|
81 | if (ret==0){
|
---|
82 | char cc = key.chr;
|
---|
83 | if (cc == 0) cc = ' ';
|
---|
84 | printf("ascii=(%c,%i) scan=%i status=%x vkey=%i up=%i\n",cc,key.chr & 255,key.scancode,key.status,key.vKey,key.keyUp);
|
---|
85 | } else printf("NO\n");
|
---|
86 | }
|
---|
87 |
|
---|
88 | vio32Close();
|
---|
89 |
|
---|
90 |
|
---|
91 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.