采集程序用加密狗加密后,不能采出单帧图像
o野猫 2004-08-11 05:21:51 用samplegrabber采集静态图像,图像源是个usb摄像头,未加密前,程序运行正常,可以采出图像;用加密狗加密了以后,图像可以预览显示出来,但选择采集时没有任何反应。
这是我的程序,麻烦高手帮我看看:
AM_MEDIA_TYPE mt;
HRESULT hr = pGrabber->GetConnectedMediaType( &mt );
if(FAILED(hr))
{
Msg(TEXT("不能连接,请检察设置"));
return false;
}
VIDEOINFOHEADER * vih = (VIDEOINFOHEADER*) mt.pbFormat;
long width = vih->bmiHeader.biWidth;
long height = vih->bmiHeader.biHeight;
long cbBuffer = 0;
hr = pGrabber->GetCurrentBuffer(&cbBuffer,NULL);
char * pBuffer = new char[cbBuffer];
if(!pBuffer)
{
Msg(TEXT("can not allocate memory"));
}
hr = pGrabber->GetCurrentBuffer(&cbBuffer,(long*)pBuffer);
BITMAPFILEHEADER hdr;
BITMAPINFOHEADER bi;
memset( &bi, 0, sizeof( bi ) );
bi.biSize = sizeof( bi );
bi.biWidth = width;
bi.biHeight = height;
bi.biPlanes = 1;
bi.biBitCount = 24;
hdr.bfType = 'MB'; //always is "BM"
hdr.bfSize = cbBuffer + sizeof( hdr ) + sizeof(BITMAPINFOHEADER );
hdr.bfReserved1 = 0;
hdr.bfReserved2 = 0;
hdr.bfOffBits = sizeof( BITMAPINFOHEADER ) + sizeof( BITMAPFILEHEADER );
if(cbBuffer==0)
{
MessageBox(NULL,"NULL","提示信息",MB_OK|MB_ICONINFORMATION);
}
CFile bitmapFile(outFile, CFile::modeReadWrite | CFile::modeCreate | CFile::typeBinary);
bitmapFile.Write(&hdr, sizeof(BITMAPFILEHEADER));
bitmapFile.Write(&bi,sizeof(BITMAPINFOHEADER));
bitmapFile.Write(pBuffer, cbBuffer);
bitmapFile.Flush();
bitmapFile.Close();
delete pBuffer;