Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The server calls the OnEvent method when an event subscribed to by the plug-in occurs.
IWMSEventNotificationPlugin.OnEvent( ByRef pEvent As WMS_EVENT,
pUserCtx As IWMSContext,
pPresentationCtx As IWMSContext,
pCommandCtx As IWMSCommandContext
)
Arguments
[in] Reference to a WMS_EVENT structure containing the event. |
|
[in] IWMSContextIWMSContext Object (Visual Basic .NET) containing the User Context. |
|
[in] IWMSContext object containing the Presentation Context. |
|
[in] IWMSCommandContextIWMSCommandContext Object (Visual Basic .NET) containing the Command Context. |
Return Value
This method does not return a value. To report an error, the plug-in can throw a COMException object to the server. If the plug-in uses the IWMSEventLogIWMSEventLog Object (Visual Basic .NET) to log error information, it is recommended that it throw NS_E_PLUGIN_ERROR_REPORTED (0xC00D157D). Typically, the server attempts to make plug-in error information available to the server object model, the Windows Event Viewer, and the troubleshooting list in the details pane of the Windows Media Services MMC. However, if the plug-in uses the IWMSEventLog object to send custom error information to the Windows Event Viewer, throwing NS_E_PLUGIN_ERROR_REPORTED stops the server from also logging to the event viewer. For more information about plug-in error information, see Identifying Plug-in Errors.
Example
Public Sub OnEvent( _
ByRef pEvent As WMS_EVENT, _
ByVal pUserCtx As IWMSContext, _
ByVal pPresentationCtx As IWMSContext, _
ByVal pCommandCtx As IWMSCommandContext) _
Implements IWMSEventNotificationPlugin.OnEvent
Dim CmdRequest As IWMSContext
Dim iSubEvent As Integer
Try
pCommandCtx.GetCommandRequest(CmdRequest)
CmdRequest.GetLongValue(WMSDefines.WMS_COMMAND_CONTEXT_EVENT, _
WMSDefines.WMS_COMMAND_CONTEXT_EVENT_ID, _
iSubEvent, 0)
Select Case pEvent.Type
Case WMS_EVENT_TYPE.WMS_EVENT_PLUGIN
' TODO: Handle plug-in events.
Case WMS_EVENT_TYPE.WMS_EVENT_PUBLISHING_POINT
' TODO: Handle publishing point events.
Case WMS_EVENT_TYPE.WMS_EVENT_SERVER
' TODO: Handle server events.
Case WMS_EVENT_TYPE.WMS_EVENT_LIMIT_CHANGE
Dim iOldValue As Integer
Dim iNewValue As Integer
CmdRequest.GetLongValue( _
WMSDefines.WMS_COMMAND_CONTEXT_LIMIT_OLD_VALUE, _
WMSDefines.WMS_COMMAND_CONTEXT_LIMIT_OLD_VALUE_ID, _
iOldValue, 0)
CmdRequest.GetLongValue( _
WMSDefines.WMS_COMMAND_CONTEXT_LIMIT_NEW_VALUE, _
WMSDefines.WMS_COMMAND_CONTEXT_LIMIT_NEW_VALUE_ID, _
iNewValue, 0)
If iSubEvent = WMS_LIMIT_CHANGE_EVENT_TYPE.WMS_EVENT_LIMIT_CHANGE_CONNECTED_PLAYERS Then
' TODO: Handle connected players limit change event.
ElseIf iSubEvent = WMS_LIMIT_CHANGE_EVENT_TYPE.WMS_EVENT_LIMIT_CHANGE_CONNECTION_RATE Then
' TODO: Handle connection rate limit change event.
Else
' TODO: Handle other limit change events.
End If
End Select
Catch e As Exception
' TODO: Handle exceptions.
End Try
End Sub
Requirements
Reference: Add a reference to Microsoft.WindowsMediaServices.
Namespace: Microsoft.WindowsMediaServices.Interop.
Assembly: Microsoft.WindowsMediaServices.dll.
Library: WMSServerTypeLib.dll.
Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; Windows Server 2008.