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 には無視される。 |
参照