usb hid传输数据,根据读出来的数据某一位控制flash的播放

youdoing 2017-04-08 10:57:20

ULONG gDataLen = 0;
BYTE gData[1024];
UINT ReadDataThread(LPVOID lpVoid)
{
TCHAR strArray[500];
int nLen=::GetCurrentDirectory(500,strArray);
if(strArray[nLen]!='\\')
{
strArray[nLen++]='\\';
strArray[nLen]='\0';
}

CString strFileName=strArray;
CString FileName=strFileName+"config.ini";

CString logoName,mainName,strName;

while(1)
{
if(!This->m_hidtools.ReadHID(gData,gDataLen))
return -1;
if(gDataLen>0)
{
CString str,t;
ULONG i;
for(i=0;i<gDataLen;i++)
{
if(gData[i+3]==0x10)
{

GetPrivateProfileString("RES","logo",0,logoName.GetBuffer(MAX_PATH),MAX_PATH,FileName);
strFileName.Insert(strFileName.GetLength(),logoName);
This->m_ShockwaveFlash.LoadMovie(0,strName);
This->m_ShockwaveFlash.Play();

}
t.Format("%02x ",gData[i]);
str += t;
if(0==(i+1)%9)
str += "\r\n";
}
if(Dlg)
{
Dlg->m_edithid.GetWindowText(t);
if(t.GetLength()>CLSLEN)
t="";
t += str;
Dlg->m_edithid.SetWindowText(t);
Dlg->m_edithid.LineScroll(Dlg->m_edithid.GetLineCount());
}
if(gDataLen<9)
continue;
for(i=0;i<gDataLen;i+=9)
{
if(gData[i+1] == 0x55)
{
if(gData[i+3]==0x10)
{

GetPrivateProfileString("RES","logo",0,logoName.GetBuffer(MAX_PATH),MAX_PATH,FileName);
strFileName.Insert(strFileName.GetLength(),logoName);
This->m_ShockwaveFlash.LoadMovie(0,strName);
This->m_ShockwaveFlash.Play();

}
if(gData[i+3]==0x11)
{

GetPrivateProfileString("RES","main",0,mainName.GetBuffer(MAX_PATH),MAX_PATH,FileName);
strFileName.Insert(strFileName.GetLength(),mainName);
This->m_ShockwaveFlash.LoadMovie(0,strName);
This->m_ShockwaveFlash.Play();

}

PostMessage(This->m_hWnd,MM_HIDMSGARR,gData[i+2],0);
}
}

}
}
return 0;
}现在想通过读出来的数据控制播放哪个播放器,红色部分不能实现播放,请问该如何写才能实现,请求大神指点!感谢啦
...全文
110 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧