次の方法で共有


アプリケーションへのコールバック関数の追加

アプリケーションは、次の状況でアプリケーションに通知できるように、コールバック関数をキャプチャ ウィンドウに登録できます。

  • 状態が変わる
  • エラーが発生する
  • ビデオ フレームとオーディオ バッファーが使用可能になる
  • ストリーミング キャプチャ中にアプリケーションを生成する必要がある

次の例では、キャプチャ ウィンドウを作成し、アプリケーションのメッセージ処理ループに状態、エラー、ビデオ ストリーム、フレーム コールバック関数を登録します。 また、コールバック関数を無効にするためのサンプル ステートメントも含まれています。 以降の例では、単純な状態、エラー、フレームコールバック関数を示します。

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; 
} 
 

ビデオ キャプチャの使用