00012 {
00013
DWORD Status;
00014 ULONG BytesTransferred;
00015 INPUT_RECORD Char;
00016
BOOL Success;
00017 HANDLE Array[1];
00018
int i;
00019
00020
FlushConsoleInputBuffer(GetStdHandle(STD_INPUT_HANDLE));
00021
for (i=0;i<2;i++) {
00022 printf(
"Waiting...\n");
00023
Status = WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE),-1);
00024
if (
Status != 0) {
00025 printf(
"wait failed %lx\n",Status);
00026
return 1;
00027 }
00028 Success = ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),
00029 &Char,
00030 1,
00031 &BytesTransferred
00032 );
00033
if (
Status != 0) {
00034 printf(
"read failed %lx\n",Status);
00035
return 1;
00036 }
00037
if (BytesTransferred != 1) {
00038 printf(
"Read returned %d chars\n",BytesTransferred);
00039 }
00040 printf(
"Read returned %c\n",Char.Event.KeyEvent.uChar.AsciiChar);
00041 }
00042
00043 Array[0] = GetStdHandle(STD_INPUT_HANDLE);
00044
for (i=0;i<2;i++) {
00045 printf(
"Waiting...\n");
00046
Status = WaitForMultipleObjects(1,Array,FALSE,-1);
00047
if (
Status != 0) {
00048 printf(
"wait failed %lx\n",Status);
00049
return 1;
00050 }
00051 Success = ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),
00052 &Char,
00053 1,
00054 &BytesTransferred
00055 );
00056
if (
Status != 0) {
00057 printf(
"read failed %lx\n",Status);
00058
return 1;
00059 }
00060
if (BytesTransferred != 1) {
00061 printf(
"Read returned %d chars\n",BytesTransferred);
00062 }
00063 printf(
"Read returned %c\n",Char.Event.KeyEvent.uChar.AsciiChar);
00064 }
00065 }