Microsoft DirectX 9.0

MSVidWebDVD Events

This topic applies to Windows XP Service Pack 1 only.

The MSVidWebDVD object has various events associated with it. These events come in two types: those sent when a disc capability is disabled or enabled (Author-programmed events), and those sent by the filter graph manager, such as a domain change (Filter Graph events). Filter graph events are passed through the DVDNotify event.

All events are channeled through the MSVidCtl object and must be captured by subroutines in the code associated with the form hosting the Video Control. 

Note   The MSVidWebDVD object must be declared using the WithEvents keyword if you wish to capture these events. This alerts Visual Basic that the MSVidWebDVD is exposing custom events.

Author-programmed events

Author-programmed events are events that the DVD author has programmed into the disc, usually enabling or disabling navigation features, such as pause, play chapter, or play title. These events can be used to enable or disable form controls appropriately. These events can be handled without further parsing as a subroutine declared in the following style:

Private Sub MSVidWebDVDobjectname_Eventname([ByVal parameters])

The following code demonstrates disabling a form pause button when the DVD author has disabled pause capability:

' Note: You must declare MSVidWebDVD using WithEvents to 
'      capture all sent events.
Dim WithEvents oDVDPlayer as MSVidWebDVD
Private Sub oDVDPlayer_PauseOn(ByVal bEnabled As Boolean)
   ' Enable or disable Pause button.
   cmdPause.Enabled = bEnabled
End Sub

Note   The MSVidWebDVD object must be declared using the WithEvents keyword if you wish to capture these events. This alerts Visual Basic that the MSVidWebDVD is exposing custom events.

Event parameters are sent by value, and must be written in exactly the same way as declared in the event definition, although the parameter names may be changed. An easy way to create event-capturing subroutines in the Microsoft® Visual Basic® development environment is to select the local name of the MSVidWebDVD object in the Object drop-down menu on the left, then choose the event name in the Procedure drop-down menu on the right. If the event does not already have a handling subroutine, one will be created for you with the proper name and parameters.

Filter graph events

Filter graph events typically concern playback or domain changes, such as angle changes, disc ejection, or playback stop, and are sent to the DVDNotify event. These can be used as notifications to refresh chapter or title lists, among other uses. The disc or DVD Navigator filter may send events at counterintuitive times, during setup, for example, so be sure to know when a disc sends particular messages before relying on them in your application.

These events are sent as integer values to the DVDNotify event, and require the message to be parsed before handling. The message is typically handled with If...Then or Case statements, similar to the way Windows messages are handled. A DVDNotify event code is accompanied by two parameters that may contain additional information about the event. The following code shows how some DVDNotify events might be handled:

Private Sub oVidWebDVD_DVDNotify(ByVal lEventCode As Long, _
            ByVal lParam1 As Variant, ByVal lParam2 As Variant)
Select Case lEventCode
    ' If in the FBI warning domain, disable inappropriate buttons.
    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
           'Handle forbidden player level...
        End If
    'Handle other cases...
End Select

Note   Event code constants must be assigned manually. See Handling DVD Event Notifications for a list of event code values.

Event Description
ChangeCurrentAngle Sent when the disc enables or disables changing the angle.
ChangeCurrentAudioStream Sent when the disc enables or disables changing the audio stream.
ChangeCurrentSubpictureStream Sent when the disc enables or disables changing the subpicture stream.
ChangeKaraokePresMode Sent when the disc enables or disables changing the karaoke presentation mode.
ChangeVideoPresMode Sent when the disc enables or disables changing the video presentation mode.
DVDNotify Notifies an application of many different DVD events and disc instructions.
PauseOn Sent when the Pause command has been enabled or disabled. Ignored by MSVidCtl.
PlayAtTime Sent when the PlayAtTime command has been enabled or disabled.
PlayAtTimeInTitle Sent when the PlayAtTimeInTitle command has been enabled or disabled.
PlayBackwards Sent when the disc enables or disables play in a backward direction.
PlayChapter Sent when the PlayChapter command has been enabled or disabled.
PlayChapterInTitle Sent when the PlayChapterInTitle command has been enabled or disabled.
PlayForwards Sent when the disc enables or disables play in a forward direction.
PlayNextChapter Sent when the PlayNextChapter command has been enabled or disabled.
PlayPrevChapter Sent when the PlayPrevChapter command has been enabled or disabled.
PlayTitle Sent when the PlayTitle command has been enabled or disabled.
ReplayChapter Sent when the ReplayChapter command has been enabled or disabled.
Resume Sent when the Resume command has been enabled or disabled.
ReturnFromSubmenu Sent when the ReturnFromSubmenu command has been enabled or disabled.
SelectOrActivateButton Sent when the disc enables or disables the selection or activation of a menu button.
ShowMenu Sent when the disc enables or disables the showing of a menu.
StillOff Sent when the StillOff command has been enabled or disabled.
Stop Sent when the Stop command has been enabled or disabled. Ignored by MSVidCtl.

See Also