Menambahkan Fungsi Panggilan Balik ke Aplikasi
Aplikasi dapat mendaftarkan fungsi panggilan balik pada jendela penangkapan sehingga aplikasi diberi tahu dalam keadaan berikut:
- Status berubah
- Kesalahan terjadi
- Bingkai video dan buffer audio menjadi tersedia
- Aplikasi harus menghasilkan selama penangkapan streaming
Contoh berikut membuat jendela penangkapan dan mendaftarkan fungsi panggilan balik untuk status, kesalahan, aliran video, dan bingkai dalam loop pemrosesan pesan aplikasi. Ini juga mencakup contoh pernyataan untuk menonaktifkan fungsi panggilan balik. Contoh-contoh selanjutnya menunjukkan fungsi status sederhana, kesalahan, dan 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;
}