Elo TouchSystems 1525L User Manual

Page 137

Advertising
background image

MagTek Device Drivers for Windows


134

}

#else
gets(str);
strcat(str, "\n");
ch = str[0];
#endif
switch (ch)

{
case 0x1a:

// <Ctrl-Z> - emergency exit

printf("\n---Exit---\n");//@@
quit = TRUE;
break;

default:

if (ch < 0x100)

{
BOOL

rs;

DWORD

ret_len;

#ifdef SINGLE_CHARS
rs = WriteFile(drv_h, &ch, 1, &ret_len, &ov_w);
#else
rs = WriteFile(drv_h, str, strlen(str), &ret_len, &ov_w);
#endif
if (!rs)

{
ws = GetLastError ();
if ( ws != ERROR_IO_PENDING)

printf("DeviceIOControl (Write) Error : %i (0x%x)\n", ws, ws );

}

rs = GetOverlappedResult (

drv_h,

// handle

&ov_w,

// address of overlapped structure

&ret_len,

// address of actual bytes count

TRUE

// wait flag

);

if (!rs)

{
ws = GetLastError ();
printf("Write Error : %i (0x%x)\n", ws, ws );
}

}

else

{
}

break;

} /* switch (ch) */

// give output thread chance to catch 'quit' character from driver
// @@ there should be a better way to do this
if (ch == 0x1b)

Sleep(200);

}

}

#define BUFSZ

128

void

output_thread

(void *vp)

{

BOOL

rs;

Advertising