STDMETHODIMP BufferCB( double dblSampleTime, BYTE * pBuffer, long lBufferSize )
{
// this flag will get set to true in order to take a picture
//
CBitmap bm;
bm.CreateBitmap(640, 480, 1, 24, pBuffer);
BITMAPFILEHEADER BMFileHeader;
BITMAPINFOHEADER BMInfoHeader;
BITMAP BM;
bm.GetObject(sizeof(BM),&BM);
BMInfoHeader.biSize = sizeof(BITMAPINFOHEADER);
BMInfoHeader.biWidth = BM.bmWidth;
BMInfoHeader.biHeight = BM.bmHeight;
BMInfoHeader.biPlanes = 1;
BMInfoHeader.biBitCount = 24;
BMInfoHeader.biCompression = 0;
BMInfoHeader.biSizeImage = 0;
BMInfoHeader.biXPelsPerMeter = 0;
BMInfoHeader.biYPelsPerMeter = 0;
BMInfoHeader.biClrUsed = 0;
BMInfoHeader.biClrImportant = 0;
BMFileHeader.bfType =0x4d42;
BMFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
BMFileHeader.bfSize =BMFileHeader.bfOffBits + BM.bmWidth * BM.bmHeight * 3;
BMFileHeader.bfReserved1=0;
BMFileHeader.bfReserved2=0;
CFile file;
if(!file.Open(_T("d:\\aa.bmp"),CFile::modeCreate|CFile::modeWrite))
{
return 0;
}
file.Write(&BMFileHeader, sizeof(BITMAPFILEHEADER));
file.Write(&BMInfoHeader, sizeof(BITMAPINFOHEADER));
file.Write(pBuffer, BM.bmWidth * BM.bmHeight * 3);
file.Close();
bm.DeleteObject();
{
// this flag will get set to true in order to take a picture
//
CBitmap bm;
bm.CreateBitmap(640, 480, 1, 24, pBuffer);
BITMAPFILEHEADER BMFileHeader;
BITMAPINFOHEADER BMInfoHeader;
BITMAP BM;
bm.GetObject(sizeof(BM),&BM);
BMInfoHeader.biSize = sizeof(BITMAPINFOHEADER);
BMInfoHeader.biWidth = BM.bmWidth;
BMInfoHeader.biHeight = BM.bmHeight;
BMInfoHeader.biPlanes = 1;
BMInfoHeader.biBitCount = 24;
BMInfoHeader.biCompression = 0;
BMInfoHeader.biSizeImage = 0;
BMInfoHeader.biXPelsPerMeter = 0;
BMInfoHeader.biYPelsPerMeter = 0;
BMInfoHeader.biClrUsed = 0;
BMInfoHeader.biClrImportant = 0;
BMFileHeader.bfType =0x4d42;
BMFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER);
BMFileHeader.bfSize =BMFileHeader.bfOffBits + BM.bmWidth * BM.bmHeight * 3;
BMFileHeader.bfReserved1=0;
BMFileHeader.bfReserved2=0;
CFile file;
if(!file.Open(_T("d:\\aa.bmp"),CFile::modeCreate|CFile::modeWrite))
{
return 0;
}
file.Write(&BMFileHeader, sizeof(BITMAPFILEHEADER));
file.Write(&BMInfoHeader, sizeof(BITMAPINFOHEADER));
file.Write(pBuffer, BM.bmWidth * BM.bmHeight * 3);
file.Close();
bm.DeleteObject();