68 lines
1.9 KiB
C
68 lines
1.9 KiB
C
|
#ifndef SCN_USB_H_HEADER_INCLUDED_B2BF228E
|
||
|
#define SCN_USB_H_HEADER_INCLUDED_B2BF228E
|
||
|
#include <Windows.h>
|
||
|
#include <usbscan.h>
|
||
|
#include "CUSBHotPlugged.h"
|
||
|
|
||
|
#pragma pack(1)
|
||
|
struct tag_usb_pipe
|
||
|
{
|
||
|
HANDLE h_pipe;
|
||
|
USBSCAN_PIPE_INFORMATION pipe_info;
|
||
|
OVERLAPPED overlap;
|
||
|
};
|
||
|
typedef struct tag_usb_pipe usb_pipe_t, *pusb_pipe_t;
|
||
|
#pragma pack()
|
||
|
|
||
|
typedef struct tag_usb_scan_dev_info
|
||
|
{
|
||
|
WORD vid;
|
||
|
WORD pid;
|
||
|
WORD index;
|
||
|
}usb_scan_dev_info, *pusb_scan_dev_info;
|
||
|
|
||
|
typedef struct tag_usb_scan_dev
|
||
|
{
|
||
|
USHORT _NumberOfDevs;
|
||
|
tag_usb_scan_dev_info dev_infos[1024];
|
||
|
}usb_scan_dev, *pusb_scan_dev;
|
||
|
|
||
|
//##ModelId=4D40D3230138
|
||
|
class cscn_usb
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
USBSCAN_PIPE_CONFIGURATION m_usbscan_config;
|
||
|
usb_pipe_t m_usb_pipes[MAX_NUM_PIPES];
|
||
|
HANDLE m_h_dev;
|
||
|
void init(WORD w_vid, WORD w_pid);
|
||
|
BOOL control_in (BYTE by_pipe_addr, WORD w_value, WORD w_index, PVOID p_data, DWORD dw_size, PDWORD pdw_read, LPOVERLAPPED lp_overlap);
|
||
|
BOOL control_out (BYTE by_pipe_addr, WORD w_value, WORD w_index, PVOID p_data, DWORD dw_size, PDWORD pdw_write, LPOVERLAPPED lp_overlap);
|
||
|
BOOL interrupt_in(BYTE by_pipe_addr, PBYTE pby_data, BYTE by_len, PBYTE pby_read, LPOVERLAPPED lp_overlap);
|
||
|
BOOL bulk_in (BYTE by_pipe_addr, PVOID p_data, DWORD dw_size, DWORD timeout,PDWORD pdw_ret);
|
||
|
BOOL bulk_out(BYTE by_pipe_addr, PVOID p_data, DWORD dw_size, PDWORD pdw_ret);
|
||
|
HANDLE open(WORD index);
|
||
|
BOOL Read_Data(PVOID p_data, DWORD length, DWORD timeout, PDWORD pdw_ret);
|
||
|
BOOL close(void);
|
||
|
cscn_usb(void);
|
||
|
~cscn_usb(void);
|
||
|
BOOL is_connected(void);
|
||
|
|
||
|
private:
|
||
|
BOOL m_b_is_connected;
|
||
|
//##ModelId=4D41B612027E
|
||
|
WORD m_w_vid;
|
||
|
//##ModelId=4D41B62200F7
|
||
|
WORD m_w_pid;
|
||
|
//##ModelId=4D41B63103A7
|
||
|
WORD m_w_serial_no;
|
||
|
|
||
|
};
|
||
|
|
||
|
|
||
|
usb_scan_dev Devices();
|
||
|
usb_scan_dev Devices(WORD w_vid);
|
||
|
usb_scan_dev Devices(WORD w_vid, WORD w_pid);
|
||
|
|
||
|
#endif /* SCN_USB_H_HEADER_INCLUDED_B2BF228E */
|