Owner's manual
MagTek Device Drivers for Windows
C EXAMPLE
#include <stdio.h>
#include <windows.h>
#define BUF_LEN 256
#define COMM_TIMEOUT 5000
//----------------------------------------------------------------------------------
BOOL OpenMTD(PHANDLE phMTD);
BOOL CloseMTD(PHANDLE phMTD);
BOOL WriteMTD(PHANDLE phMTD, LPTSTR lpParam,DWORD *lpdwWritten);
BOOL ReadMTD(PHANDLE phMTD, LPTSTR lpParam,DWORD pdwReadSize,DWORD *lpdwRead);
//----------------------------------------------------------------------------------
BOOL OpenMTD(PHANDLE phMTD)
{
*phMTD = CreateFile("\\\\.\\COM9" , GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING,
FILE_FLAG_OVERLAPPED, NULL);
if (*phMTD!= INVALID_HANDLE_VALUE)
{
DCB dcb;
if (!GetCommState(*phMTD, &dcb))
{
return FALSE;
}
//Setup the baud rate
dcb.BaudRate = CBR_9600;
dcb.Parity = EVENPARITY;
//Setup the data bits
dcb.ByteSize = 7;
dcb.StopBits = ONESTOPBIT;
//Setup the flow control
dcb.fDsrSensitivity = FALSE;
dcb.fOutxCtsFlow = FALSE;
dcb.fOutxDsrFlow = FALSE;
dcb.fOutX = FALSE;
dcb.fInX = FALSE;
//Now that we have all the settings in place, make the changes
if (!SetCommState(*phMTD, &dcb))
{
return FALSE;
}
return TRUE;
}
return FALSE;
}
//----------------------------------------------------------------------------------
BOOL CloseMTD(PHANDLE phMTD)
{
if (*phMTD!= INVALID_HANDLE_VALUE)
{
CloseHandle(*phMTD);
return TRUE;
}
return FALSE;
}
//----------------------------------------------------------------------------------
BOOL WriteMTD(PHANDLE phMTD, LPTSTR lpParam,DWORD *lpdwWritten)
{
if (phMTD== INVALID_HANDLE_VALUE)
{
return FALSE;
}
56