WMS Archive Data Writer Plug-in Properties
Previous | Next |
WMS Archive Data Writer Plug-in Properties
You can use the WMS Archive Data Writer plug-in to write digital content from a broadcast publishing point to a file. For administration information about this plug-in, see Windows Media Services Help.
You can use the IWMSAdminArchiveSink interface to configure the plug-in. This interface exposes the following properties.
Property | Description |
ActivePath | Retrieves the path to the content that is being archived. |
AutoStart | Specifies and retrieves a Boolean value indicating whether archiving begins automatically when streaming begins. |
AvailableDiskSpace | Retrieves the amount of remaining disk space that can be used for archiving. |
Bandwidth | Retrieves the current bandwidth of the content being archived. |
ElapsedTime | Retrieves the amount of time that the archiving process has been running. |
IsRecording | Retrieves a Boolean value indicating whether the archiving process is running. |
Path | Specifies and retrieves the template path to which content is being archived. |
The IWMSAdminArchiveSink interface also exposes the following methods.
Method | Description |
ExpandTemplate | Retrieves the expanded form of a tokenized template path. |
StartRecord | Starts the archiving process. |
StopRecord | Stops the archiving process. |
The following examples illustrate how to specify the archive path. This is any valid path that can be passed to the Win32 CreateFile function. The path consists internally of a file name template and a path template. For more information, see IWMSAdminArchiveSink.Path (Visual Basic .NET).
Visual Basic .NET Example
Imports Microsoft.WindowsMediaServices.Interop Imports System.Runtime.InteropServices Private Sub SetArchivePluginProps() ' Declare variables. Dim Server As WMSServer Dim Plugin As IWMSPlugin Dim AdminArchiveSink As IWMSAdminArchiveSink Dim BCPubPoint As IWMSBroadcastPublishingPoint Try ' Create a new WMSServer object. Server = New WMSServer() ' Retrieve an existing broadcast publishing point. BCPubPoint = Server.PublishingPoints("Sample_Broadcast") ' Retrieve the WMS Archive Data Writer plug-in. Plugin = BCPubPoint.BroadcastDataSinks("WMS Archive Data Writer") ' Retrieve the administration interface for the plug-in. AdminArchiveSink = Plugin.CustomInterface ' Set a Boolean value indicating whether to ' start archiving when the broadcast begins. AdminArchiveSink.AutoStart = True ' Set the default path for archived content. AdminArchiveSink.Path = "%SystemDrive%\WMPub\WMArchive\<V>\Archive_<Y><m><d>.wmv" 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; IWMSAdminArchiveSink AdminArchiveSink; IWMSBroadcastPublishingPoint BCPubPoint; try { // Create a new WMSServer object. Server = new WMSServerClass(); // Retrieve an existing broadcast publishing point. BCPubPoint = (IWMSBroadcastPublishingPoint)Server.PublishingPoints["Sample_Broadcast"]; // Retrieve the WMS Archive Data Writer plug-in. Plugin = BCPubPoint.BroadcastDataSinks["WMS Archive Data Writer"]; // Retrieve the administrative interface for the plug-in. AdminArchiveSink = (IWMSAdminArchiveSink)Plugin.CustomInterface; // Set a Boolean value indicating whether to // start archiving when the broadcast begins. AdminArchiveSink.AutoStart = true; // Set the default path for archived content. AdminArchiveSink.Path = "%SystemDrive%\\WMPub\\WMArchive\\<V>\\Archive_<Y><m><d>.wmv"; } 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; IWMSAdminArchiveSink* pAdminArchiveSink = NULL; IWMSBroadcastPublishingPoint* pBCPubPoint = NULL; IWMSPublishingPoints* pPubPoints = NULL; IWMSPublishingPoint* pPubPoint = NULL; CComVariant varIndex; CComBSTR bstrPath; 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 the IWMSPublishingPoints interface. hr = pServer->get_PublishingPoints(&pPubPoints); if (FAILED(hr)) goto EXIT; // Retrieve an existing broadcast publishing point. varIndex = "Sample_Broadcast"; hr = pPubPoints->get_Item(varIndex, &pPubPoint); if (FAILED(hr)) goto EXIT; // Query the IWMSBroadcastPublishingPoint interface from // the newly created publishing point. hr = pPubPoint->QueryInterface(IID_IWMSBroadcastPublishingPoint, (void **)&pBCPubPoint); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to an IWMSPlugins interface // containing the collection of broadcast data sink plug-ins. hr = pBCPubPoint->get_BroadcastDataSinks(&pPlugins); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to the IWMSPlugin interface // of the plug-in to be configured. varIndex = "WMS Archive Data Writer"; hr = pPlugins->get_Item(varIndex, &pPlugin); if (FAILED(hr)) goto EXIT; // Retrieve a pointer to the custom interface // of the plug-in. hr = pPlugin->get_CustomInterface(&pDispatch); if (FAILED(hr)) goto EXIT; // Query the specific administration interface // for the plug-in. hr = pDispatch->QueryInterface(IID_IWMSAdminArchiveSink, (void **)&pAdminArchiveSink); if (FAILED(hr)) goto EXIT; // Set a Boolean value indicating whether to // start archiving when the broadcast begins. hr = pAdminArchiveSink->put_AutoStart(VARIANT_TRUE); if (FAILED(hr)) goto EXIT; // Set the default path for archived content. bstrPath = "%SystemDrive%\\wmpub\\wmarchive\\<V>\\Archive_<Y><m><d>.wmv"; hr = pAdminArchiveSink->put_Path(bstrPath); if (FAILED(hr)) goto EXIT; EXIT: // TODO: Release temporary COM objects and uninitialize COM.
See Also
- IWMSAdminArchiveSink Interface
- IWMSAdminArchiveSink Object (C#)
- IWMSAdminArchiveSink Object (Visual Basic .NET)
- Programming System Plug-in Properties
Previous | Next |