亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? libusbvb0.c

?? VB6 + LibUsb Intigration It s Not my original work, but i guess i can share it
?? C
字號:
#include "usb.h"
#include <errno.h>
#include <string.h>
#include <windows.h>

void  __stdcall vb_usb_init(void);
void  __stdcall vb_usb_set_debug(int level);
usb_dev_handle * __stdcall vb_usb_open(int index, int vid, int pid);
int __stdcall vb_usb_close(usb_dev_handle *dev);
int __stdcall vb_usb_get_string_descriptor(usb_dev_handle *dev, 
                                           int index, int langid, 
                                           char *buf, int buflen);
int __stdcall vb_usb_get_string_simple(usb_dev_handle *dev, int index, 
                                       char *buf, int buflen);
int __stdcall vb_usb_get_descriptor(usb_dev_handle *udev, int type,
                                    int index, void *buf, int size);
int __stdcall vb_usb_get_device_descriptor(usb_dev_handle *udev, void *buf);
int __stdcall vb_usb_get_configuration_descriptor(usb_dev_handle *udev, 
                                           int config_index, void *buf);
int __stdcall vb_usb_get_interface_descriptor(usb_dev_handle *udev, 
                                              int config_index, 
                                              int interface_index,
                                              int alt_index,
                                              void *buf);
int __stdcall vb_usb_get_endpoint_descriptor(usb_dev_handle *udev, 
                                             int config_index, 
                                             int interface_index,
                                             int alt_index,
                                             int endpoint_index,
                                              void *buf);
int __stdcall vb_usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, 
                                int size, int timeout);
int __stdcall vb_usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, 
                               int size, int timeout);
int __stdcall vb_usb_interrupt_write(usb_dev_handle *dev, int ep,
                                     char *bytes, int size, int timeout);
int __stdcall vb_usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes,
                                    int size, int timeout);
int __stdcall vb_usb_control_msg(usb_dev_handle *dev, int requesttype,
                                 int request, int value, int index, 
                                 char *bytes, int size, int timeout);
int __stdcall vb_usb_set_configuration(usb_dev_handle *dev, 
                                       int configuration);
int __stdcall vb_usb_claim_interface(usb_dev_handle *dev, int interface);
int __stdcall vb_usb_release_interface(usb_dev_handle *dev, int interface);
int __stdcall vb_usb_set_altinterface(usb_dev_handle *dev, int alternate);
int __stdcall vb_usb_resetep(usb_dev_handle *dev, unsigned int ep);
int __stdcall vb_usb_clear_halt(usb_dev_handle *dev, unsigned int ep);
int __stdcall vb_usb_reset(usb_dev_handle *dev);



void __stdcall vb_usb_init(void)
{
  usb_init();
}

void __stdcall vb_usb_set_debug(int level)
{
  usb_set_debug(level);
}

usb_dev_handle * __stdcall vb_usb_open(int index, int vid, int pid)
{
  struct usb_bus *bus;
  struct usb_device *dev;
  
  usb_find_busses();
  usb_find_devices();

  for(bus = usb_get_busses(); bus; bus = bus->next) 
    {
      for(dev = bus->devices; dev; dev = dev->next) 
        {
          if((dev->descriptor.idVendor == vid || vid < 0)
             && (dev->descriptor.idProduct == pid || pid < 0))
            {
              if(!index)
                return usb_open(dev);
              else 
                index--;
            }
        }
    }

  return NULL;
}

int __stdcall vb_usb_close(usb_dev_handle *dev)
{
  return usb_close(dev);
}

int __stdcall vb_usb_get_string_descriptor(usb_dev_handle *dev, int index,
                                           int langid, char *buf, int buflen)
{
  return usb_get_string(dev, index, langid, buf, buflen);
}

int __stdcall vb_usb_get_string_simple(usb_dev_handle *dev, int index, 
                                       char *buf, int buflen)
{
  return usb_get_string_simple(dev, index, buf, buflen);
}

int __stdcall vb_usb_get_descriptor(usb_dev_handle *udev, int type,
                                    int index, void *buf, int size)
{
  return usb_get_descriptor(udev, (unsigned char)type, (unsigned char)index, 
                            buf, size);
}

int __stdcall vb_usb_get_device_descriptor(usb_dev_handle *udev, void *buf)
{
  struct usb_device *dev;
  if(!udev || !buf)
    return FALSE;
  dev = usb_device(udev);
  memcpy(buf, &dev->descriptor, USB_DT_DEVICE_SIZE);
  return TRUE;
}

int __stdcall vb_usb_get_configuration_descriptor(usb_dev_handle *udev, 
                                                  int config_index, void *buf)
{
  struct usb_device *dev;
  if(!udev || !buf)
    return FALSE;
  dev = usb_device(udev);
  if(config_index >= dev->descriptor.bNumConfigurations)
    return FALSE;
  memcpy(buf, &dev->config[config_index], USB_DT_CONFIG_SIZE);
  return TRUE;
}

int __stdcall vb_usb_get_interface_descriptor(usb_dev_handle *udev, 
                                              int config_index, 
                                              int interface_index,
                                              int alt_index,
                                              void *buf)
{
  struct usb_device *dev;
  if(!udev || !buf)
    return FALSE;
  dev = usb_device(udev);
  if(config_index >= dev->descriptor.bNumConfigurations)
    return FALSE;
  if(interface_index >= dev->config[config_index].bNumInterfaces)
    return FALSE;
  if(alt_index >= dev->config[config_index]
     .interface[interface_index].num_altsetting)
    return FALSE;

  memcpy(buf, &dev->config[config_index]
         .interface[interface_index].altsetting[alt_index], 
         USB_DT_INTERFACE_SIZE);
  return TRUE;
}

int __stdcall vb_usb_get_endpoint_descriptor(usb_dev_handle *udev, 
                                             int config_index, 
                                             int interface_index,
                                             int alt_index,
                                             int endpoint_index,
                                             void *buf)
{
  struct usb_device *dev;
  if(!udev || !buf)
    return FALSE;
  dev = usb_device(udev);
  if(config_index >= dev->descriptor.bNumConfigurations)
    return FALSE;
  if(interface_index >= dev->config[config_index].bNumInterfaces)
    return FALSE;
  if(alt_index >= dev->config[config_index]
     .interface[interface_index].num_altsetting)
    return FALSE;
  if(endpoint_index >= dev->config[config_index]
     .interface[interface_index].altsetting[alt_index].bNumEndpoints)
    return FALSE;
  memcpy(buf, &dev->config[config_index]
         .interface[interface_index].altsetting[alt_index]
         .endpoint[endpoint_index], USB_DT_ENDPOINT_SIZE);
  return TRUE;
}

int __stdcall vb_usb_bulk_write(usb_dev_handle *dev, int ep, char *bytes, 
                                int size, int timeout)
{
  return usb_bulk_write(dev, ep, bytes, size, timeout);
}

int __stdcall vb_usb_bulk_read(usb_dev_handle *dev, int ep, char *bytes, 
                               int size, int timeout)
{
  return usb_bulk_read(dev, ep, bytes, size, timeout);
}

int __stdcall vb_usb_interrupt_write(usb_dev_handle *dev, int ep,
                                     char *bytes, int size, int timeout)
{
  return usb_interrupt_write(dev, ep, bytes, size, timeout);
}

int __stdcall vb_usb_interrupt_read(usb_dev_handle *dev, int ep, char *bytes,
                                    int size, int timeout)
{
  return usb_interrupt_read(dev, ep, bytes, size, timeout);
}

int __stdcall vb_usb_control_msg(usb_dev_handle *dev, int requesttype,
                                 int request, int value, int index, 
                                 char *bytes, int size, int timeout)
{
  return usb_control_msg(dev, requesttype, request, value, index, 
                                 bytes, size, timeout);
}

int __stdcall vb_usb_set_configuration(usb_dev_handle *dev, 
                                       int configuration)
{
  return usb_set_configuration(dev, configuration);
}

int __stdcall vb_usb_claim_interface(usb_dev_handle *dev, int interface)
{
  return usb_claim_interface(dev, interface);
}

int __stdcall vb_usb_release_interface(usb_dev_handle *dev, int interface)
{
  return usb_release_interface(dev, interface);
}

int __stdcall vb_usb_set_altinterface(usb_dev_handle *dev, int alternate)
{
  return usb_set_altinterface(dev, alternate);
}

int __stdcall vb_usb_resetep(usb_dev_handle *dev, unsigned int ep)
{
  return usb_resetep(dev, ep);
}

int __stdcall vb_usb_clear_halt(usb_dev_handle *dev, unsigned int ep)
{
  return usb_clear_halt(dev, ep);
}

int __stdcall vb_usb_reset(usb_dev_handle *dev)
{
  return usb_reset(dev);
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一二二区| 国产欧美精品一区二区色综合朱莉| 免费成人在线观看视频| 一区二区三区欧美激情| 亚洲欧美自拍偷拍色图| 亚洲欧洲精品一区二区三区不卡| 国产女人aaa级久久久级| 国产欧美视频一区二区| 国产精品麻豆久久久| 国产精品麻豆久久久| 亚洲视频一区二区在线观看| 亚洲欧美偷拍三级| 性欧美大战久久久久久久久| 日韩成人免费看| 国精品**一区二区三区在线蜜桃| 韩国女主播成人在线观看| 国产高清精品网站| 紧缚奴在线一区二区三区| 国产清纯美女被跳蛋高潮一区二区久久w | 欧美性受xxxx黑人xyx性爽| 色综合激情久久| 欧美日韩精品综合在线| 91精品蜜臀在线一区尤物| 精品成人私密视频| 中文字幕在线观看不卡视频| 亚洲午夜视频在线| 精品一区二区三区欧美| www.色精品| 欧美精品日韩一区| 中文字幕欧美区| 亚洲一二三四久久| 蜜臀精品一区二区三区在线观看| 国产69精品久久久久毛片| 欧美在线免费视屏| 亚洲精品在线一区二区| 尤物在线观看一区| 精品一区二区三区免费视频| 色偷偷成人一区二区三区91| 精品国产髙清在线看国产毛片| 欧美国产精品v| 视频一区二区三区在线| 成人涩涩免费视频| 日韩午夜中文字幕| 尤物视频一区二区| 国产精品一区二区三区99| 欧美色爱综合网| 国产精品毛片无遮挡高清| 日韩电影免费在线| 一本久久精品一区二区| 久久精品一区二区三区不卡牛牛| 亚洲成人自拍偷拍| 91免费看视频| 国产亚洲1区2区3区| 日本美女一区二区| 在线观看欧美黄色| 综合婷婷亚洲小说| 国产一区二区三区四区五区美女| 欧美日韩一级视频| 日韩毛片一二三区| 成人污污视频在线观看| 日韩精品专区在线| 日韩av一级电影| 在线视频国内自拍亚洲视频| 国产精品三级久久久久三级| 久久99精品国产.久久久久久| 欧美午夜精品一区二区三区| 亚洲欧美一区二区三区国产精品| 成人亚洲一区二区一| 久久婷婷综合激情| 狠狠色丁香婷婷综合久久片| 日韩欧美高清一区| 蜜臀久久久久久久| 日韩一卡二卡三卡四卡| 天天射综合影视| 欧美疯狂性受xxxxx喷水图片| 亚洲一区二区欧美| 色成年激情久久综合| 一区二区三区在线视频播放| 色一情一伦一子一伦一区| 亚洲欧美一区二区在线观看| av电影一区二区| 1000精品久久久久久久久| av网站免费线看精品| 中文字幕在线不卡一区二区三区| av爱爱亚洲一区| 亚洲男人都懂的| 欧美亚洲综合另类| 色综合亚洲欧洲| 成人激情视频网站| 欧美天堂亚洲电影院在线播放| 欧美精品一区二区三区在线 | 久久精品免费在线观看| 一区二区不卡在线播放| 国产精品456| 国产亚洲短视频| 精品久久久久香蕉网| 26uuu国产电影一区二区| av电影一区二区| 亚洲制服欧美中文字幕中文字幕| 国产一区二区三区| 欧美国产精品久久| 91免费版在线看| 石原莉奈一区二区三区在线观看| 日韩一卡二卡三卡四卡| 国产精品12区| 亚洲综合网站在线观看| 日韩欧美国产不卡| 99精品视频一区二区| 日韩avvvv在线播放| 久久精品欧美日韩| 精品污污网站免费看| 精品制服美女久久| 亚洲人成亚洲人成在线观看图片 | 色综合久久六月婷婷中文字幕| 亚洲福利视频三区| 国产亚洲视频系列| 欧美性xxxxxxxx| 国产永久精品大片wwwapp| 亚洲欧美二区三区| 久久综合久久久久88| 在线观看日产精品| 成人午夜私人影院| 免费国产亚洲视频| ●精品国产综合乱码久久久久| 日韩一区二区三区视频在线观看 | 91高清视频在线| 国产精品69毛片高清亚洲| 同产精品九九九| 亚洲免费在线看| 国产农村妇女毛片精品久久麻豆| 欧美顶级少妇做爰| 色综合天天综合给合国产| 国内精品不卡在线| 麻豆精品视频在线观看视频| 一区二区三区成人| 18欧美亚洲精品| 国产日韩欧美亚洲| 欧美mv日韩mv国产网站app| 欧美日韩国产首页| 色综合久久久网| eeuss鲁片一区二区三区在线看| 久草中文综合在线| 日韩vs国产vs欧美| 亚洲高清免费观看| 亚洲一区二区精品3399| 亚洲视频小说图片| 中文字幕亚洲欧美在线不卡| 国产性做久久久久久| 久久一日本道色综合| 欧美mv日韩mv国产| 91精品国产综合久久久久久久| 91福利视频在线| 欧美吻胸吃奶大尺度电影| 色综合久久精品| 色久综合一二码| 91激情在线视频| 欧美视频一区二区三区在线观看| 色婷婷一区二区三区四区| 色天使色偷偷av一区二区| jlzzjlzz亚洲日本少妇| 99国产精品久久久久| 一本大道久久a久久综合婷婷| 日本韩国欧美在线| 欧美日韩综合在线免费观看| 欧美疯狂做受xxxx富婆| 日韩一级欧美一级| 久久综合久久99| 国产精品久久福利| 一区二区在线免费观看| 视频在线观看一区二区三区| 蜜臀久久久久久久| 国产一本一道久久香蕉| 成人成人成人在线视频| 色成人在线视频| 91精品在线麻豆| 久久亚区不卡日本| 日韩毛片视频在线看| 日日摸夜夜添夜夜添国产精品| 精品一区二区三区香蕉蜜桃| 国产精品一二二区| 色94色欧美sute亚洲线路一ni| 欧美日韩在线三级| 2024国产精品| 亚洲激情图片qvod| 精品一区精品二区高清| 高清免费成人av| 欧美日韩一区二区在线观看 | 国产欧美一区二区三区网站 | 欧美视频精品在线| 久久蜜桃av一区二区天堂| 亚洲精品视频观看| 久久草av在线| 色综合天天做天天爱| 欧美电影免费观看高清完整版在| 中文字幕的久久| 日本 国产 欧美色综合| 一本一本久久a久久精品综合麻豆| 欧美高清视频www夜色资源网| 日本一二三不卡| 日本视频一区二区|