RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : Ответить на сообщение
Имя:
e-mail:
FIDO:
Home page:
сохранить данные о вас
Тема:
> Привет! > > Потребовалось тут разобраться с DosDevIOCtl для клавиатуры. > Подскажите, кто понимает, что не так делаю в этой тестовой программке: > > /* Answer.c - исходный текст программы */ > /* */ > /* Ожидание нажатия одной из клавиш, */ > /* перечисленных в списке. */ > /* Возвращает ERRORLEVEL, равный индексу */ > /* клавиши в списке. */ > /* */ > /* Answer [keys] */ > /* */ > /* keys - список клавиш; если опущен, */ > /* то по нажатию любой клавиши */ > /* возвращается ERRORLEVEL=0 */ > #define INCL_KBD > #define INCL_DOSDEVICES > #define INCL_DOSDEVIOCTL > #define INCL_DOSERRORS > > #include <os2.h> > #include <stdlib.h> > #include <string.h> > #include <stdio.h> > > void main( int, char ** ); > > void main( int argc, char ** argv ) > { > APIRET rc; > INT xKey = 0; /* номер нажатой клавиши */ > PCHAR xList; /* список ожидаемых клавиш */ > PCHAR xWhere; /* указатель на найденую клавишу */ > SHORT xWait = 0; /* блок параметров; 0 - ожидать нажатия */ > KBDKEYINFO xKki; /* блок данных */ > ULONG xLenParm = sizeof( SHORT ); > ULONG xLenData = sizeof( KBDKEYINFO ); > > memset( &xKki, 0, sizeof( KBDKEYINFO ) ); > if ( argc < 1 ) { > xList = NULL; > } else { > xList = argv[1]; > } /* endif */ > > while ( 1 ) { > rc = DosDevIOCtl( NULLHANDLE, > IOCTL_KEYBOARD, > KBD_READCHAR, > &xWait, > sizeof( xWait ), > &xLenParm, > &xKki, > sizeof( xKki ), > &xLenData ); > > printf( "DosDevIOCtl (rc=0x%08X)\n", rc ); > > if ( xList == NULL ) { > break; > } /* endif */ > xWhere = strchr( xList, xKki.chChar ); > if ( xWhere != NULL ) { > xKey = (INT)xWhere - (INT)xList; > break; > } /* endif */ > } /* endwhile */ > > exit( xKey ); > } > > > В результате получаю: DosDevIOCtl (rc=0x00000016) > А этот код нигде не описан. Куда копать? >
__, _,_ _, __, ___,
|_) | | | |_ ` /
| \ | | | , | /
~ ~ `~' ~~~ ~~~ ~~~
Programmed by
Dmitri Maximovich
,
Dmitry I. Platonoff
,
Eugen Kuleshov
.
25.09.99 (c) 1999,
RU/2
. All rights reserved.
Rewritten by
Dmitry Ban
. All rights ignored.