WMS Network Data Source Plug-in Properties
Windows Media Services uses the WMS Network Data Source plug-in to pull a distribution stream from an upstream server or encoder. Digital content can originate from a network data source using either the HTTP or RTSP protocol. For administration information about this plug-in, see Windows Media Services Help.
You can use the IWMSAdminNetworkDataSourcePlugin interface to configure the plug-in programmatically. This interface exposes the following properties.
Property |
Description |
---|---|
BufferingTime |
Specifies and retrieves the amount of time that the plug-in buffers data before sending it along the data path. |
NumProtocolsSupported |
Retrieves the number of networking protocols supported by the plug-in. |
NumUDPPortRanges |
Retrieves the number of UDP/TCP port number ranges that can be used by the plug-in to receive data. |
ProxyHostName |
Retrieves the name of the proxy server. |
ProxyPassword |
Retrieves a Boolean value indicating whether a proxy password has been set for a particular protocol. |
ProxyPort |
Retrieves the port number used for streaming content to the proxy server. |
ProxySettings |
Retrieves an enumeration value indicating the proxy mode for a given protocol. |
ProxyUserName |
Retrieves a user name that can be sent to the proxy server in response to an authentication challenge. |
SupportedProtocolName |
Retrieves the name of a specific protocol from a list of supported protocols. |
TCPEnabled |
Retrieves a Boolean value indicating whether the plug-in can use TCP when selecting a streaming protocol. |
UDPEnabled |
Specifies and retrieves a Boolean value indicating whether the plug-in can use UDP when selecting a streaming protocol. |
UDPPortRangeLowerBound |
Retrieves the lower bound of a specific UDP port range. |
UDPPortRangeUpperBound |
Retrieves the upper bound of a specific UDP port range. |
The IWMSAdminNetworkDataSourcePlugin interface also exposes the following methods.
Method |
Description |
---|---|
AddUDPPortRange |
Adds a range of UDP/TCP port numbers that can be used by the plug-in to receive data. |
DeleteAllUDPPortRanges |
Removes all of the UDP/TCP port number ranges that can be used by the plug-in to receive data. |
SetProxyCredentials |
Specifies a user name and password that can be used to connect to a proxy. |
SetProxyHostName |
Specifies the name of the proxy server. |
SetProxyPort |
Specifies the port number used for streaming content to the proxy server. |
SetProxySettings |
Specifies an enumeration value indicating the proxy mode for a given protocol. |
The following examples illustrate how to use the IWMSAdminNetworkDataSourcePlugin interface to configure the WMS Network Data Source plug-in.
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.Interop
Imports System.Runtime.InteropServices
Private Sub SetNetDSPluginProps()
' Declare variables.
Dim Server As WMSServer
Dim Plugin As IWMSPlugin
Dim NetDataSrcAdmin As IWMSAdminNetworkDataSourcePlugin
Try
' Create a new WMSServer object.
Server = New WMSServer()
' Retrieve the IWMSPlugin object for the
' WMS Network Data Source plug-in.
Plugin = Server.DataSources("WMS Network Data Source")
' Retrieve the administrative interface for the plug-in.
NetDataSrcAdmin = Plugin.CustomInterface()
' Set a Boolean value indicating whether UDP
' can be used as a streaming protocol.
NetDataSrcAdmin.UDPEnabled = True
' Set the proxy host name associated
' with the HTTP protocol.
NetDataSrcAdmin.SetProxyHostName("HTTP", "PROXY_ADDRESS")
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;
IWMSAdminNetworkDataSourcePlugin NetDataSrcAdmin;
try
{
// Create a new WMSServer object.
Server = new WMSServerClass();
// Retrieve the IWMSPlugin object for the
// WMS Network Data Source plug-in.
Plugin = Server.DataSources["WMS Network Data Source"];
// Retrieve the administrative interface for the plug-in.
NetDataSrcAdmin = (IWMSAdminNetworkDataSourcePlugin)Plugin.CustomInterface;
// Set a Boolean value indicating whether UDP
// can be used as a streaming protocol.
NetDataSrcAdmin.UDPEnabled = true;
// Set the proxy host name associated
// with the HTTP protocol.
NetDataSrcAdmin.SetProxyHostName("HTTP", "PROXY_ADDRESS");
}
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;
IWMSAdminNetworkDataSourcePlugin* pNetDataSrcAdmin = NULL;
CComVariant varIndex;
CComBSTR bstrProtocol;
CComBSTR bstrName;
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 data source plug-ins.
hr = pServer->get_DataSources(&pPlugins);
if (FAILED(hr)) goto EXIT;
// Retrieve a pointer to the IWMSPlugin interface for the
// WMS Network Data Source plug-in.
varIndex = "WMS Network Data Source";
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
// IWMSAdminNetworkDataSourcePlugin interface.
hr = pDispatch->QueryInterface(IID_IWMSAdminNetworkDataSourcePlugin,
(void**)&pNetDataSrcAdmin);
if (FAILED(hr)) goto EXIT;
// Set a Boolean value indicating whether UDP
// can be used as a streaming protocol.
hr = pNetDataSrcAdmin->put_UDPEnabled(VARIANT_TRUE);
if (FAILED(hr)) goto EXIT;
// Set the proxy host name associated
// with the HTTP protocol.
bstrProtocol = "HTTP";
bstrName = "PROXY_ADDRESS";
hr = pNetDataSrcAdmin->SetProxyHostName(bstrProtocol, bstrName);
if (FAILED(hr)) goto EXIT;
EXIT:
// TODO: Release temporary COM objects and uninitialize COM.
See Also
Reference
IWMSAdminNetworkDataSourcePlugin Interface
IWMSAdminNetworkDataSourcePlugin Object (C#)
IWMSAdminNetworkDataSourcePlugin Object (Visual Basic .NET)