以下程序不能够预览,但可以保存捕获到.avi文件。///*
m_bInit=FALSE;
CWnd *pWnd=AfxGetMainWnd()->GetDlgItem(IDC_VIDEO);//得到预示窗口指针
CRect rect;
pWnd->GetWindowRect(&rect); // 得到窗口大小
m_hCapWnd=capCreateCaptureWindow((LPTSTR)_T("视频捕捉"),
WS_CHILD|WS_VISIBLE,
0,0,0,0,
m_hWnd,0); // 设置预示窗口
ASSERT(m_hCapWnd); capSetUserData(m_hCapWnd,this); char szDevName[50];
char szDevVersion[50];
for(int i=0;i<9;i++)
{
capGetDriverDescription(i, szDevName, 50, szDevVersion, 50); 
int a = 0;
} //Microsoft WDM Image Capture (Win32) //唯一的捕获设备 if(capDriverConnect(m_hCapWnd,0))
{
// 连接第0 号驱动器 CAPTUREPARMS CapParms = {0};
capCaptureGetSetup(m_hCapWnd, &CapParms, sizeof(CapParms));
CapParms.vKeyAbort=0;
CapParms.fAbortLeftMouse =FALSE;
CapParms.fAbortRightMouse = FALSE;
CapParms.fCaptureAudio = FALSE;
CapParms.fYield = TRUE;
CapParms.wPercentDropForError = 100;
capCaptureSetSetup(m_hCapWnd, &CapParms, sizeof(CapParms));
BITMAPINFO m_BmpInfo;
capGetVideoFormat(m_hCapWnd, &m_BmpU, sizeof(m_BmpInfo)); m_bInit=TRUE; //得到驱动器的性能
capDriverGetCaps(m_hCapWnd,sizeof(CAPDRIVERCAPS), &m_CapDrvCap); //失败,但我没有停止它 if(m_CapDrvCap.fCaptureInitialized)
{// 如果初始化成功
//capSetCallbackOnVideoStream(m_hCapWnd,capVideoStreamCallback);
capSetCallbackOnFrame(m_hCapWnd,capVideoStreamCallback);
capGetStatus(m_hCapWnd, &m_CapStatus,sizeof(m_CapStatus)); // 得到驱动器状态
::SetWindowPos(m_hCapWnd, NULL, 0, 0, m_CapStatus.uiImageWidth, 
m_CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE); capPreviewRate(m_hCapWnd,30); // 设置预示帧频
capPreview(m_hCapWnd,TRUE); // 设置预示方式