本ページは公開が終了した情報の複製であり、掲載時点での情報です。本ページに記載されている内容について各所に問い合わせることはご遠慮下さい。
サポート技術情報

[MSVC] MFC を使った MCI の通知メッセージを受け取るサンプル

文書番号: 403840

最終更新日: 1999/03/19


この資料は以下の製品について記述したものです。


この記事は、以前は次の ID で公開されていました: JP403840

概要

この資料は MFC を使って 再生終了など MCI の通知メッセージを受け取る一つの
方法を紹介したものです。

詳細

MCI_PLAY を実行する際に、MCI_NOTIFY のフラグを指定すると、MM_MCINOTIFY の
メッセージが取得できます。以下に AVI ファイルの再生を行い、再生が終了すると
メッセージボックスを出すサンプルプログラムを紹介します。

◆ヘッダー

  #define AVI_FILE_NAME [ファイル名]
  class CTestView : public CView
  {
  .
  .
          public:
          UINT wID;
          protected:
          afx_msg LRESULT OnVideoEnd(WPARAM wParam, LPARAM lParam);
          DECLARE_MESSAGE_MAP()
  .
  .

◆メッセージマップ

  BEGIN_MESSAGE_MAP(CTestView, CView)
  .
  .
          ON_MESSAGE(MM_MCINOTIFY, OnVideoEnd)
  END_MESSAGE_MAP()

◆関数(プログラム)

  void CTestView::OnTest1()
  {
          DWORD dwReturn;
          MCI_ANIM_OPEN_PARMS OpenParms;
          MCI_ANIM_PLAY_PARMS PlayParms;
          OpenParms.lpstrElementName = AVI_FILE_NAME; //ファイル名の指定
          OpenParms.lpstrDeviceType = "AVIVideo";
          OpenParms.hWndParent = GetSafeHwnd(); //View に直接表示する
          OpenParms.dwStyle = WS_CHILD;
  // ここでは省略していますが、dwReturn の戻り値も確認すべきです
          dwReturn = mciSendCommand(NULL, MCI_OPEN,
                  MCI_OPEN_TYPE | MCI_OPEN_ELEMENT | MCI_ANIM_OPEN_PARENT |
                  MCI_ANIM_OPEN_WS, (DWORD)(LPVOID)&OpenParms);
          wID=OpenParms.wDeviceID;
          PlayParms.dwFrom = 0;
          PlayParms.dwCallback = (DWORD)GetSafeHwnd();
  //MCI_NOTIFY のメッセージを View に送る
          mciSendCommand(wID, MCI_PLAY, MCI_FROM | MCI_NOTIFY,
                  (DWORD)(LPVOID)&PlayParms);
  }

◆コールバック関数

  LRESULT CTestView::OnVideoEnd(WPARAM wParam, LPARAM lParam)
  {
          AfxMessageBox("Video End!!!");
          mciSendCommand(wID,MCI_CLOSE, 0, NULL);
          return TRUE;
  }

詳細

  • Visual C++ は、米国 Microsoft Corporation の登録商標です。

Keywords: KBHOWTO VC10 VC15 VC20 KB403840
Technology: kbAudDeveloper kbvc150 kbVC32bitSearch kbVCsearch

inserted by FC2 system