次の方法で共有


MSVidWebDVD のイベント

このトピックは Windows XP Service Pack 1 にのみ適用。

MSVidWebDVD オブジェクトにはさまざなイベントが関連付けられている。それらのイベントには次の 2 種類がある。ディスクの機能が無効または有効になっているときに送信されるイベント (作成者がプログラミングしたイベント) と、フィルタ グラフ マネージャによって送信されるドメイン変更などのイベント (フィルタ グラフ イベント) である。フィルタ グラフ イベントは DVDNotify イベントを介して渡される。

すべてのイベントは MSVidCtl オブジェクトから発行され、ビデオ コントロールをホストするフォームに関連付けられたコード内でサブルーチンによってキャプチャする必要がある。

これらのイベントをキャプチャするには、WithEvents キーワードを使って MSVidWebDVD オブジェクトを宣言する必要がある。これにより、MSVidWebDVD がカスタム イベントを公開することを Visual Basic に警告する。

作成者がプログラミングしたイベント

作成者がプログラミングしたイベントは、DVD 作成者がディスクにプログラミングしたイベントであり、通常は、ポーズ、チャプター再生、タイトル再生などのナビゲーション フィーチャーを有効または無効にする。このようなイベントを使って、フォームのコントロールを適切に有効または無効にすることができる。サブルーチンが以下のスタイルで宣言されるため、追加の解析を実行することなくこれらのイベントを処理できる。

Private Sub MSVidWebDVDobjectname_Eventname([ByVal parameters])

以下のコードは、DVD 作成者がポーズ機能を無効にした場合に、フォームのポーズ ボタンを無効にする処理を示している。

' 注 :  送信されたすべてのイベントをキャプチャするには、
'      WithEvents を使用して MSVidWebDVD を宣言する必要がある。
Dim WithEvents oDVDPlayer as MSVidWebDVD
Private Sub oDVDPlayer_PauseOn(ByVal bEnabled As Boolean)
      ' [Pause] ボタンを有効または無効にする。
   cmdPause.Enabled = bEnabled
End Sub

これらのイベントをキャプチャするには、WithEvents キーワードを使って MSVidWebDVD オブジェクトを宣言する必要がある。これにより、MSVidWebDVD がカスタム イベントを公開することを Visual Basic に警告する。

イベント パラメータは値によって送られるため、イベント定義で宣言したとおりに書く必要がある。ただしパラメータ名は変更できる。Microsoft® Visual Basic® 開発環境でイベントをキャプチャするサブルーチンを簡単に作成する方法として、左側の [オブジェクト] ドロップダウン メニューで MSVidWebDVD オブジェクトのローカル名を選択し、右側の [プロシージャ] ドロップダウン メニューでイベント名を選択する方法がある。イベントを処理するサブルーチンがまだ作成されていない場合は、適切な名前とパラメータを使って自動的に作成される。

フィルタ グラフ イベント

通常、フィルタ グラフ イベントは再生またはドメインに関する変化 (アングルの変更、ディスク取り出し、再生停止など) に関係するイベントであり、DVDNotify イベントに送られる。これらのイベントは、チャプター リストやタイトル リストを更新する通知として使えるほか、いくつかの用途がある。ディスクまたは DVD ナビゲータ フィルタは、たとえばセットアップ時に、連続して何回かイベントを送信する場合がある。そのため、どのような場合にディスクから特定のメッセージが送信されるかを確認してからでないと、アプリケーションでそれらのメッセージに依存した処理はできない。

これらのイベントは整数値として DVDNotify イベントに送信され、メッセージを処理する前に解析する必要がある。通常、メッセージは、Windows のメッセージ処理と同様に、If...Then または Case 文によって処理される。DVDNotify イベント コードには 2 つのパラメータがあり、イベントに関する追加情報を指定できる。次のコードは、いくつかの DVDNotify イベントの処理方法を示している。

Private Sub oVidWebDVD_DVDNotify(ByVal lEventCode As Long, _
            ByVal lParam1 As Variant, ByVal lParam2 As Variant)
Select Case lEventCode
        ' FBI 警告ドメイン内では、不適切なボタンを無効にする。
    Case EC_DVD_DOMAIN_CHANGE
        If lParam1 = DVD_DOMAIN_FirstPlay Then
           cmdPause.Enabled = False
           cmdFastForward.Enabled = False
        End If
    Case EC_DVD_PARENTAL_LEVEL_CHANGE
        If lParam1 < oVidWebDVD.PlayerParentalLevel Then
                      '禁止されているプレーヤ レベルを処理する。
        End If
        '他の場合の処理をする...
End Select

イベント コード定数は手動で割り当てる必要がある。イベント コード値の一覧については、「DVD イベント通知の処理」を参照すること。

イベント 説明
ChangeCurrentAngle ディスクでアングルの変更が有効または無効になると送信される。
ChangeCurrentAudioStream ディスクでオーディオ ストリームの変更が有効または無効になると送信される。
ChangeCurrentSubpictureStream ディスクでサブピクチャ ストリームの変更が有効または無効になると送信される。
ChangeKaraokePresMode ディスクでカラオケ表示モードの変更が有効または無効になると送信される。
ChangeVideoPresMode ディスクでビデオ表示モードの変更が有効または無効になると送信される。
DVDNotify 各種の DVD イベントおよびディスク関連命令をアプリケーションに通知する。
PauseOn Pause コマンドが有効または無効になると送信される。MSVidCtl には無視される。
PlayAtTime PlayAtTime コマンドが有効または無効になると送信される。
PlayAtTimeInTitle PlayAtTimeInTitle コマンドが有効または無効になると送信される。
PlayBackwards ディスクで逆方向の再生が有効または無効になると送信される。
PlayChapter PlayChapter コマンドが有効または無効になると送信される。
PlayChapterInTitle PlayChapterInTitle コマンドが有効または無効になると送信される。
PlayForwards ディスクで順方向の再生が有効または無効になると送信される。
PlayNextChapter PlayNextChapter コマンドが有効または無効になると送信される。
PlayPrevChapter PlayPrevChapter コマンドが有効または無効になると送信される。
PlayTitle PlayTitle コマンドが有効または無効になると送信される。
ReplayChapter ReplayChapter コマンドが有効または無効になると送信される。
Resume Resume コマンドが有効または無効になると送信される。
ReturnFromSubmenu ReturnFromSubmenu コマンドが有効または無効になると送信される。
SelectOrActivateButton ディスクでメニュー ボタンの選択またはアクティブ化が有効または無効になると送信される。
ShowMenu ディスクでメニューの表示が有効または無効になると送信される。
StillOff StillOff コマンドが有効または無効になると送信される。
Stop Stop コマンドが有効または無効になると送信される。MSVidCtl には無視される。

参照