// 取得視訊裝置驅動程式的資訊 dwDriverIndex = 0; if (capGetDriverDescription(dwDriverIndex, szDeviceName, sizeof(szDeviceName), szDeviceVersion, sizeof(szDeviceVersion))) { lblCapDriverName->Caption = szDeviceName; lblCapDriverVer->Caption = szDeviceVersion; } // 建立視訊擷取視窗 hwndVideo = capCreateCaptureWindow( (LPSTR) "My Capture Window",WS_CHILD | WS_VISIBLE, 10, 10, iImageWidth, iImageHeight, Form1->pnlCapture->Handle, 1); // connect to the driver capDriverConnect(hwndVideo, dwDriverIndex); if (capDriverGetCaps(hwndVideo,&s,sizeof(s))) { if ( s.fHasOverlay ) lblOverlay->Caption = AnsiString("Overlay: Yes"); else lblOverlay->Caption = AnsiString("Overlay: No"); if ( s.fHasDlgVideoSource ) lblDlgVideoSource->Caption = AnsiString("Video Source Dialog: Yes"); else { lblDlgVideoSource->Caption = AnsiString("Video Source Dialog: No"); VideoSource1->Enabled = false; } if ( s.fHasDlgVideoFormat ) lblDlgVideoFormat->Caption = AnsiString("Video Format Dialog: Yes"); else { lblDlgVideoFormat->Caption = AnsiString("Video Format Dialog: No"); VideoFormat1->Enabled = false; } if ( s.fHasDlgVideoDisplay ) lblDlgVideoDisplay->Caption = AnsiString("Video Display Dialog: Yes"); else { lblDlgVideoDisplay->Caption = AnsiString("Video Display Dialog: No"); VideoDisplay1->Enabled = false; } if ( s.fCaptureInitialized ) lblCaptureInitialized->Caption = AnsiString("Capture Initialized: Yes"); else lblCaptureInitialized->Caption = AnsiString("Capture Initialized: No"); if ( s.fDriverSuppliesPalettes ) lblDriverSuppliesPalettes->Caption = AnsiString("Driver Supplies Palettes: Yes"); else lblDriverSuppliesPalettes->Caption = AnsiString("Driver Supplies Palettes: No"); } else ShowMessage("Capture Window does not connect to any Capture Driver"); capDriverConnect(hwndVideo, dwDriverIndex); if (!capDriverConnect(hwndVideo, dwDriverIndex)) { // ---- Unable to connect to driver return; } // set preview rate to 33.3 miliseconds, or 30 FPS capPreviewRate(hwndVideo, 66); // start preview video capPreview(hwndVideo, true); capPreviewScale(hwndVideo, true);