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

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

?? devreader.cpp

?? USB HID 控件,適用于DLEPHI及BCB
?? CPP
字號:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "DevReader.h"
#include "Info.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "JvHidControllerClass"
#pragma resource "*.dfm"
TMainForm *MainForm;
//---------------------------------------------------------------------------
__fastcall TMainForm::TMainForm(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TMainForm::HidCtlDeviceChange(TObject *Sender)
{
  int I;
  TJvHidDevice *Dev;

  ReadBtn->Down = false;
  ReadBtnClick(this);
  if(DevListBox != NULL)
  {
    for(I = 0; I < DevListBox->Count; I++)
    {
      Dev = (TJvHidDevice *) DevListBox->Items->Objects[I];
      Dev->Free();
    }
    DevListBox->Clear();
    HistoryListBox->Clear();
    HidCtl->Enumerate();
    if(DevListBox->Items->Count > 0)
    {
      DevListBox->ItemIndex = 0;
      DevListBoxClick(this);
    }
  }
}
//---------------------------------------------------------------------------

bool __fastcall TMainForm::HidCtlEnumerate(TJvHidDevice *HidDev,
      const int Idx)
{
  int N;
  TJvHidDevice *Dev;
  AnsiString S;

  if(DevListBox != NULL)
  {
    if(HidDev->ProductName != NULL)
      N = DevListBox->Items->Add(HidDev->ProductName);
    else
      N = DevListBox->Items->Add(S.sprintf("Device VID=%04X PID=%04X",
        HidDev->Attributes.VendorID, HidDev->Attributes.ProductID));
    HidCtl->CheckOutByIndex(Dev, Idx);
    DevListBox->Items->Objects[N] = Dev;
  }
  return(true);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::ShowRead(TJvHidDevice *HidDev,
      BYTE ReportID, const void *Data, WORD Size)
{
  WORD I;
  AnsiString Str;
  AnsiString S;
  char *P;

  P = (char *) Data;
  Str.sprintf("R %02X  ", ReportID);
  for(I = 0; I < Size; I++)
    Str += S.sprintf("%02X ", (unsigned char) P[I]);
  HistoryListBox->ItemIndex = HistoryListBox->Items->Add(Str);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::ReadBtnClick(TObject *Sender)
{
  if(CurrentDevice != NULL)
    CurrentDevice->OnData = NULL;
  CurrentDevice = NULL;
  if(DevListBox->Items->Count > 0 && DevListBox->ItemIndex >= 0)
  {
    CurrentDevice = (TJvHidDevice *) DevListBox->Items->Objects[DevListBox->ItemIndex];
    if(ReadBtn->Down && CurrentDevice->HasReadWriteAccess)
      CurrentDevice->OnData = ShowRead;
    else
    {
      CurrentDevice->OnData = NULL;
      ReadBtn->Down = false;
    }
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::DevListBoxClick(TObject *Sender)
{
  int I;
  TJvHidDevice *Dev;

  ReadBtn->Down = false;
  ReadBtnClick(this);
  HistoryListBox->Clear();
  if(Edits[0] != NULL &&
    DevListBox->Items->Count > 0 && DevListBox->ItemIndex >= 0)
  {
    Dev = (TJvHidDevice *) DevListBox->Items->Objects[DevListBox->ItemIndex];
    for(I = 0; I < 64; I++)
      Edits[I]->Visible = false;
    for(I = 0; I < Dev->Caps.OutputReportByteLength - 1; I++)
      Edits[I]->Visible = true;
    WriteBtn->Enabled = Dev->Caps.OutputReportByteLength != 0;
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::SaveBtnClick(TObject *Sender)
{
  ForceCurrentDirectory = true;
  if(SaveDialog->Execute())
    HistoryListBox->Items->SaveToFile(SaveDialog->FileName);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::FormActivate(TObject *Sender)
{
  int I;
  int J;
  TEdit *E;

  if(Edits[0] != NULL)
    return;
  Edits[0] = Edit1;
  for(I = 1; I < 64; I++)
    Edits[I] = new TEdit(this);
  for(J = 0; J < 4; J++)
    for(I = 0; I < 16; I++)
    {
      E = Edits[J*16 + I];
      E->Visible  = false;
      E->Left     = Edit1->Left + I*(Edit1->Width+2);
      E->Top      = Edit1->Top  + J*(Edit1->Height+2);
      E->Width    = Edit1->Width;
      E->Anchors  = Edit1->Anchors;
      if(E->Parent == NULL)
        E->Parent = Edit1->Parent;
      E->TabOrder = Edit1->TabOrder + J*16 + I;
    }
  DevListBoxClick(this);
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::WriteBtnClick(TObject *Sender)
{
  unsigned int I;
  unsigned char Buf[65];
  unsigned int Written;
  unsigned int ToWrite;
  AnsiString Str;
  AnsiString S;

  if(CurrentDevice != NULL)
  {
    Buf[0] = StrToIntDef("$" + ReportID->Text, 0);
    ReportID->Text = Str.sprintf("%02X", Buf[0]);
    ToWrite = CurrentDevice->Caps.OutputReportByteLength;
    for(I = 1; I < ToWrite; I++)
    {
      Buf[I] = StrToIntDef("$" + Edits[I-1]->Text, 0);
      Edits[I-1]->Text = Str.sprintf("%02X", Buf[I]);
    }
    CurrentDevice->WriteFile(Buf, ToWrite, Written);
    Str.sprintf("W %02X  ", Buf[0]);
    for(I = 1; I < Written; I++)
      Str += S.sprintf("%02X ", Buf[I]);
    HistoryListBox->ItemIndex = HistoryListBox->Items->Add(Str);
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::InfoBtnClick(TObject *Sender)
{
  TInfoForm *Info;

  if(DevListBox->Items->Count > 0 && DevListBox->ItemIndex >= 0)
  {
    Info = new TInfoForm(this);
    Info->Dev = (TJvHidDevice *) DevListBox->Items->Objects[DevListBox->ItemIndex];
    Info->ShowModal();
    delete Info;
  }
}
//---------------------------------------------------------------------------

void __fastcall TMainForm::HidCtlDeviceDataError(TJvHidDevice *HidDev,
      DWORD Error)
{
  HistoryListBox->ItemIndex = HistoryListBox->Items->Add("READ ERROR: " + SysErrorMessage(Error));
}
//---------------------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久免费电影网| 日韩一区二区高清| 国产在线播放一区| 青青草国产成人99久久| 日本欧美一区二区三区| 无吗不卡中文字幕| 美女高潮久久久| 精品在线一区二区三区| 国产精品一区二区在线观看不卡 | 懂色av一区二区三区免费观看| 精品亚洲aⅴ乱码一区二区三区| 裸体一区二区三区| 最新日韩av在线| 亚洲免费在线观看视频| 午夜成人免费视频| 日韩高清中文字幕一区| 国产一区二区在线观看视频| 国产91色综合久久免费分享| 99国产精品国产精品久久| 色女孩综合影院| 91精品欧美综合在线观看最新| 欧美videos中文字幕| 国产日本欧洲亚洲| 一区二区三区在线视频免费| 日韩电影在线免费观看| 国产一区二区在线观看视频| 91香蕉国产在线观看软件| 欧美日韩一区二区三区高清| 日韩精品一区二区三区在线| 国产欧美一区二区精品婷婷| 亚洲成人在线免费| 国产成人久久精品77777最新版本| 91视视频在线观看入口直接观看www | 精品国产乱码久久久久久牛牛| 国产日韩精品一区二区三区| 亚洲影视资源网| 国产最新精品免费| 色狠狠一区二区| 久久综合色婷婷| 亚洲一区二区三区小说| 国产一区二区剧情av在线| 色偷偷一区二区三区| 日韩一级在线观看| 亚洲精品自拍动漫在线| 精品一二三四区| 午夜成人免费电影| 欧美成人一区二区三区| 国产一区欧美日韩| 国产精品私房写真福利视频| 91丨porny丨国产| 亚洲成人免费在线观看| 日韩小视频在线观看专区| 国产一区二区美女| 亚洲欧美成人一区二区三区| 欧美视频在线一区| 老司机一区二区| 日本一区二区成人在线| 91香蕉国产在线观看软件| 亚洲444eee在线观看| 精品日韩在线一区| 成人免费视频视频在线观看免费| 亚洲丝袜精品丝袜在线| 欧美日韩精品一区二区| 91丨porny丨在线| 久久久久国产精品厨房| 国内外成人在线| 精品三级在线观看| 免费三级欧美电影| 欧美一级搡bbbb搡bbbb| 肉肉av福利一精品导航| 在线观看免费一区| 夜夜嗨av一区二区三区网页| 91网站在线播放| 亚洲另类春色国产| 色狠狠综合天天综合综合| 亚洲嫩草精品久久| 日本国产一区二区| 亚洲综合免费观看高清完整版在线 | 国产剧情在线观看一区二区| 欧美大片国产精品| 国产中文字幕精品| 日韩一级成人av| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美猛男男办公室激情| 天天操天天色综合| 日韩视频在线一区二区| 韩国毛片一区二区三区| 日本一区二区三区久久久久久久久不 | 欧美丝袜自拍制服另类| 性做久久久久久免费观看欧美| 91福利视频网站| 午夜精品久久一牛影视| 欧美va亚洲va香蕉在线 | 国产欧美日韩精品一区| av资源站一区| 午夜一区二区三区在线观看| 欧美一级一级性生活免费录像| 麻豆91精品91久久久的内涵| 国产日韩v精品一区二区| 91香蕉国产在线观看软件| 亚洲成人动漫av| 精品人伦一区二区色婷婷| www.久久久久久久久| 亚洲一区二区三区影院| 欧美大片一区二区三区| av一本久道久久综合久久鬼色| 亚洲v中文字幕| 久久精品欧美一区二区三区麻豆| 91麻豆产精品久久久久久| 日韩av二区在线播放| 国产天堂亚洲国产碰碰| 在线精品观看国产| 国产麻豆午夜三级精品| 亚洲精品ww久久久久久p站 | 国产亚洲va综合人人澡精品| 一本色道a无线码一区v| 精品一区二区免费| 夜夜精品视频一区二区| 久久免费精品国产久精品久久久久| 91免费精品国自产拍在线不卡| 蜜乳av一区二区三区| 成人欧美一区二区三区白人| 欧美成人精品福利| 欧美性色欧美a在线播放| 国产成人av一区二区三区在线| 亚洲成av人片一区二区| 国产精品久久久久久妇女6080 | 琪琪一区二区三区| 一色屋精品亚洲香蕉网站| 欧美成人精品高清在线播放| 欧美无砖砖区免费| 97久久精品人人做人人爽50路| 精品一二线国产| 免费在线看一区| 视频精品一区二区| 亚洲国产日韩a在线播放性色| 一色屋精品亚洲香蕉网站| 久久精品一区二区三区四区| 日韩一区二区在线观看视频 | 久久se精品一区二区| 亚洲成人免费视频| 一区二区成人在线观看| 国产精品免费观看视频| 国产日韩高清在线| 久久亚洲春色中文字幕久久久| 欧美一区二区精品| 91精品国产综合久久福利软件| 欧美三级韩国三级日本一级| 欧美影院一区二区三区| 欧美亚洲另类激情小说| 欧美伊人久久大香线蕉综合69| 97超碰欧美中文字幕| caoporen国产精品视频| gogogo免费视频观看亚洲一| av亚洲精华国产精华精华| 波多野洁衣一区| 成人av小说网| 色拍拍在线精品视频8848| 在线观看不卡视频| 欧洲精品一区二区三区在线观看| 色国产综合视频| 欧美日韩免费在线视频| 欧美日韩国产另类一区| 在线综合视频播放| 欧美xxxx在线观看| 国产日韩三级在线| 亚洲视频一区在线| 亚洲影院久久精品| 裸体健美xxxx欧美裸体表演| 国产精品一区二区无线| 91在线观看高清| 91精品婷婷国产综合久久竹菊| 精品区一区二区| 国产精品久久看| 亚洲不卡av一区二区三区| 久久99精品久久久久久久久久久久| 精品一区二区三区在线视频| 1区2区3区精品视频| 奇米色一区二区三区四区| 91久久线看在观草草青青| 国产精品―色哟哟| 黄色精品一二区| 日韩午夜在线观看| 亚洲国产成人av网| 91久久精品一区二区二区| 国产精品女人毛片| 国产suv精品一区二区三区| 日韩欧美国产一区在线观看| 午夜一区二区三区视频| 欧美日韩在线播放三区四区| 亚洲男人的天堂在线aⅴ视频| av网站一区二区三区| 中文字幕免费观看一区| 国产成人精品1024| 久久精品夜色噜噜亚洲aⅴ| 国产精品自在在线| 国产午夜亚洲精品羞羞网站| 国产精品亚洲一区二区三区妖精 | 国产成人丝袜美腿| 亚洲国产精品欧美一二99|