WMS RTSP Server Control Protocol Plug-in Properties
A Windows Media server uses the WMS RTSP Server Control Protocol plug-in to communicate with clients through the RTSP protocol. For administration information about this plug-in, see Windows Media Services Help.
There are two interfaces that you can use to configure the plug-in programmatically. The IWMSBoundIPAddresses interface contains a collection of IP addresses through which the protocol communicates. This interface exposes the following methods.
Method |
Description |
---|---|
Add |
Adds a new address to the collection. |
RemoveAll |
Removes all IP addresses from the collection. |
The IWMSCPPluginAdmin interface exposes the following properties.
Property |
Description |
---|---|
BoundIPAddresses |
Retrieves an IWMSBoundIPAddresses object containing a collection of IP addresses that the protocol is bound to. |
ControlProtocol |
Retrieves the name of the protocol. |
ListenAllIPAddresses |
Specifies and retrieves a Boolean value indicating whether the server must monitor all IP addresses for incoming client requests. |
Port |
Specifies and retrieves the port number used by the protocol. |
The following examples illustrate how to use the IWMSCPPluginAdmin interface to retrieve a list of the bound IP addresses and the name of the protocol.
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.Interop
Imports System.Runtime.InteropServices
Private Sub SetRtspCPPluginProps()
' Declare variables.
Dim Server As WMSServer
Dim Plugin As IWMSPlugin
Dim CPAdmin As IWMSCPPluginAdmin
Dim BoundIPAddr As IWMSBoundIPAddresses
Dim strProtocol As String
Try
' Create a new WMSServer object.
Server = New WMSServer()
' Retrieve the IWMSPlugin object for the
' WMS RTSP Server Control Protocol plug-in.
Plugin = Server.ControlProtocols("WMS RTSP Server Control Protocol")
' Retrieve the administrative interface for the plug-in.
CPAdmin = Plugin.CustomInterface()
' Retrieve the list of bound IP addresses.
BoundIPAddr = CPAdmin.BoundIPAddresses
' Retrieve the name of the protocol used
' by the plug-in.
strProtocol = CPAdmin.ControlProtocol
Catch excCom As COMException
' TODO: Handle COM exceptions.
Catch exc As Exception
' TODO: Handle exceptions here.
Finally
' TODO: Perform clean-up here.
End Try
End Sub
C# Example
using Microsoft.WindowsMediaServices.Interop;
using System.Runtime.InteropServices;
// Declare variables.
WMSServer Server;
IWMSPlugin Plugin;
IWMSCPPluginAdmin CPAdmin;
IWMSBoundIPAddresses BoundIPAddr;
try
{
// Create a new WMSServer object.
Server = new WMSServerClass();
// Retrieve the IWMSPlugin object for the
// WMS RTSP Server Control Protocol plug-in.
Plugin = Server.ControlProtocols["WMS RTSP Server Control Protocol"];
// Retrieve the administrative interface for the plug-in.
CPAdmin = (IWMSCPPluginAdmin)Plugin.CustomInterface;
// Retrieve the list of bound IP addresses.
BoundIPAddr = CPAdmin.BoundIPAddresses;
// Retrieve the name of the protocol used by the plug-in.
string strProtocol = CPAdmin.ControlProtocol;
}
catch (COMException comExc) {
// TODO: Handle COM exceptions.
}
catch (Exception exc)
{
// TODO: Handle exceptions here.
}
finally
{
// TODO: Perform clean-up here.
}
C++ Example
#include <windows.h>
#include <atlbase.h>
// To access system plug-in interfaces, the
// type library must be imported as shown.
#import "WMSServerTypeLib.dll" no_namespace named_guids \
raw_interfaces_only
// Declare variables and interface pointers.
IWMSServer* pServer = NULL;
IWMSPlugins* pPlugins = NULL;
IWMSPlugin* pPlugin = NULL;
IDispatch* pDispatch = NULL;
IWMSCPPluginAdmin* pCPAdmin = NULL;
IWMSBoundIPAddresses* pBoundIPAddresses = NULL;
CComVariant varIndex;
CComBSTR bstrProtocol;
HRESULT hr = S_OK;
// Initialize the COM library and retrieve a pointer
// to an IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
NULL,
CLSCTX_ALL,
IID_IWMSServer,
(void **)&pServer);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to an IWMSPlugins interface
// containing the collection of control protocol plug-ins.
hr = pServer->get_ControlProtocols(&pPlugins);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the IWMSPlugin interface for the
// WMS RTSP Server Control Protocol plug-in.
varIndex = "WMS RTSP Server Control Protocol";
hr = pPlugins->get_Item(varIndex, &pPlugin);
if (FAILED(hr)) goto EXIT;
// Retrieve an IDispatch pointer to the administration
// interface for the plug-in.
hr = pPlugin->get_CustomInterface(&pDispatch);
if (FAILED(hr)) goto EXIT;
// Call QueryInterface() to retrieve a pointer to the
// IWMSCPPluginAdmin interface.
hr = pDispatch->QueryInterface(IID_IWMSCPPluginAdmin, (void**)&pCPAdmin);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the list of bound IP addresses.
hr = pCPAdmin->get_BoundIPAddresses(&pBoundIPAddresses);
if (FAILED(hr)) goto EXIT;
// Retrieve the protocol name supported by the plug-in.
hr = pCPAdmin->get_ControlProtocol(&bstrProtocol);
if (FAILED(hr)) goto EXIT;
EXIT:
// TODO: Release temporary COM objects and uninitialize COM.
See Also
Reference
IWMSBoundIPAddresses Interface
IWMSBoundIPAddresses Object (C#)
IWMSBoundIPAddresses Object (Visual Basic .NET)
IWMSCPPluginAdmin Object (Visual Basic .NET)