Menambahkan Fungsi Panggilan Balik ke Aplikasi

Aplikasi dapat mendaftarkan fungsi panggilan balik dengan jendela pengambilan sehingga memberi tahu aplikasi dalam keadaan berikut:

  • Status berubah
  • Terjadi kesalahan
  • Bingkai video dan buffer audio menjadi tersedia
  • Aplikasi harus menghasilkan selama pengambilan streaming

Contoh berikut membuat jendela pengambilan dan mendaftarkan status, kesalahan, aliran video, dan fungsi panggilan balik bingkai dalam perulangan pemrosesan pesan aplikasi. Ini juga mencakup pernyataan sampel untuk menonaktifkan fungsi panggilan balik. Contoh berikutnya menunjukkan status sederhana, kesalahan, dan fungsi panggilan balik bingkai.

case WM_CREATE: 
{ 
    char    achDeviceName[80] ; 
    char    achDeviceVersion[100] ; 
    char    achBuffer[100] ; 
    WORD    wDriverCount = 0 ; 
    WORD    wIndex ; 
    WORD    wError ; 
    HMENU   hMenu ; 
 
    // Create a capture window using the capCreateCaptureWindow macro.
    ghWndCap = capCreateCaptureWindow((LPSTR)"Capture Window", 
        WS_CHILD | WS_VISIBLE, 0, 0, 160, 120, (HWND) hWnd, (int) 0); 
 
    // Register the error callback function using the 
    // capSetCallbackOnError macro. 
    capSetCallbackOnError(ghWndCap, fpErrorCallback); 
 
    // Register the status callback function using the 
    // capSetCallbackOnStatus macro. 
    capSetCallbackOnStatus(ghWndCap, fpStatusCallback); 
 
    // Register the video-stream callback function using the
    // capSetCallbackOnVideoStream macro. 
    capSetCallbackOnVideoStream(ghWndCap, fpVideoCallback); 
 
    // Register the frame callback function using the
    // capSetCallbackOnFrame macro. 
    capSetCallbackOnFrame(ghWndCap, fpFrameCallback); 
 
    // Connect to a capture driver 

    break; 
} 
case WM_CLOSE: 
{ 
// Use the capSetCallbackOnFrame macro to 
// disable the frame callback. Similar calls exist for the other 
// callback functions.

    capSetCallbackOnFrame(ghWndCap, NULL); 

    break; 
} 
 

Menggunakan Pengambilan Video