00001
00010 #ifndef __IEUS_IO_H__
00011 #define __IEUS_IO_H__
00012
00013
00014 #ifndef __cplusplus
00015 #error REQUIRES __cplusplus compilation / linkage
00016 #endif
00017
00018 #include <wtypes.h>
00019
00020 #if defined(INK_SERIAL_BUILD)
00021 #include "ieusb_io_ext.h"
00022 #endif
00023
00024 #if !defined(INK_SERIAL_BUILD)
00025 typedef void * IEUSB_HANDLE;
00026 #endif
00027 typedef void * IEUSB_LIB_HANDLE;
00028
00029
00030 typedef enum {
00031 IO_WIN = 1,
00032 IO_ICA = 2,
00033 IO_RDP = 4
00034 } IEUSB_LIB_MODE;
00035
00036 #define IEUSB_LIB_ALL_MODES ( (IEUSB_LIB_MODE)(IO_WIN | IO_ICA | IO_RDP) )
00037
00042 IEUSB_LIB_HANDLE IEUS_InitializeLibraryContext(IEUSB_LIB_MODE modes);
00043
00044
00045 IEUSB_LIB_MODE IEUS_GetIoMode(IEUSB_LIB_HANDLE hLibContext);
00046
00050 void IEUS_ReleaseLibraryContext(IEUSB_LIB_HANDLE hLibContext);
00051
00052 #if !defined(INK_SERIAL_BUILD)
00053
00056 ULONG IEUS_GetNumDevices(IEUSB_LIB_HANDLE hLibContext, USHORT DEVICEPID, USHORT DEVICEVID, USHORT CAPSUsagePageValue, int fExclusiveOpen, int *iNumEndpoints);
00057
00062 IEUSB_HANDLE IEUS_OpenDevice( IEUSB_LIB_HANDLE hLibContext, ULONG iDeviceNum, USHORT DEVICEPID, USHORT DEVICEVID, USHORT CAPSUsagePageValue, int fExclusiveOpen);
00063 #endif
00064
00067 void IEUS_CloseDevice( IEUSB_HANDLE hDevice);
00068
00074 BOOLEAN IEUS_GetFWRevision( IEUSB_HANDLE hDevice, USHORT *p_bcdVersion );
00079 BOOLEAN IEUS_GetVidPid( IEUSB_HANDLE hDevice, USHORT *pVID, USHORT *pPID );
00080
00084 BOOLEAN IEUS_HidGetIndexedString( IEUSB_HANDLE hDevice, ULONG StringIndex, PVOID Buffer, ULONG BufferLength);
00088 BOOLEAN IEUS_HidGetFeature( IEUSB_HANDLE hDevice, PVOID ReportBuffer, ULONG ReportBufferLength );
00092 BOOLEAN IEUS_HidSetFeature( IEUSB_HANDLE hDevice, PVOID ReportBuffer, ULONG ReportBufferLength );
00093
00099 BOOLEAN IEUS_ReadFile( IEUSB_HANDLE hDevice, LPVOID lpBuffer, DWORD nNumberOfBytesToRead, LPDWORD lpNumberOfBytesRead, LPOVERLAPPED lpOverlapped);
00104 DWORD IEUS_GetTimeoutValue( IEUSB_HANDLE hDevice );
00105
00111 BOOLEAN IEUS_GetOverlappedResult( IEUSB_HANDLE hDevice, LPOVERLAPPED lpOverlapped, LPDWORD lpNumberOfBytesTransferred, BOOL bWait );
00115 BOOLEAN IEUS_CancelIo( IEUSB_HANDLE hDevice );
00116
00117 #if !defined(INK_SERIAL_BUILD)
00118
00121 HANDLE IEUS_GETHANDLE(IEUSB_HANDLE hDevice);
00122 #endif
00123
00124 BOOLEAN IEUS_GetDataReportSize(IEUSB_HANDLE hDevice, ULONG *pInputReportlength, ULONG *pFeatureReportLength = NULL, ULONG *pOutputReportLength = NULL);
00125
00126 #endif
00127
00128
00129