デバイスを選択しライブ画像を表示させる

プロジェクトエクスプローラーのクラスビューを開き、"CFirstStepView"クラスを右クリックします。コンテキストメニューより "プロパティ" を選択し "Override" を押します。そしてOnInitialUpdateメソッドを追加します。

デバイスを選択するには、標準のデバイス選択ダイアログを使用します。
これはCFirstStepViewクラスのOnInitialUpdateメソッドにて行います。コードを以下の通り変更します。

void CFirstStepView::OnInitialUpdate()
{
  CView::OnInitialUpdate();

  // TODO:自分のコードを記述する and/or 基底クラスを呼び出す

   // ドキュメントクラスよりGrabberを取得
  DShowLib::Grabber* pGrabber = GetDocument()->m_pGrabber;

  // デバイスページの表示
  pGrabber->showDevicePage();

  // 有効なデバイスがあるかをチェック
  if( pGrabber->isDevValid() )
  {
    // ライブ画像を表示させるウィンドウの立ち上げ
    pGrabber->setHWND( m_hWnd );
    // ライブ表示の開始
    pGrabber->startLive();
  }
  else
  {
    AfxMessageBox( "No device was selected." );
  }
}

アプリケーションが終了する前にライブ表示を停止し、デバイスをクローズにしなければなりません。そのためにはOnCloseDocumentメソッドを追加します。プロジェクトエクスプローラーのクラスビューを開き"CFirstStepDoc"クラスを右クリックします。コンテキストメニューより "プロパティ" を選択し "オーバーライド" を押します。そしてOnCloseDocumentメソッドを追加してください。

OnCloseDocumentメソッドに以下のコードを挿入してください。

void CFirstStepDoc::OnCloseDocument()
{
  // TODO: 自分のコードを記述する and/or 基底クラスを呼び出す

   // ライブ表示の停止
   m_pGrabber->stopLive();

  // オープンなデバイスが無い場合にはこのコールも完了します
  m_pGrabber->closeDev();

  CDocument::OnCloseDocument();
}

ではコンパイルをしてプロジェクトを実行してください。ダイアログにてデバイスを選択するとライブ画像表示が開始されます。