Share via


IWMSAdminArchiveSink Interface

banner art

Previous Next

IWMSAdminArchiveSink Interface

You can use the IWMSAdminArchiveSink interface to archive streamed content. This interface is exposed by the WMS Archive Data Writer plug-in.

In addition to the methods inherited from IDispatch, the IWMSAdminArchiveSink interface exposes the following methods.

Method Description
ExpandTemplate Retrieves the expanded form of a tokenized template path.
get_ActivePath Retrieves the path to the content that is being archived.
get_AutoStart Retrieves a Boolean value indicating whether archiving begins automatically when streaming begins.
get_AvailableDiskSpace Retrieves the amount of remaining disk space that can be used for archiving.
get_Bandwidth Retrieves the current bandwidth of the content being archived.
get_ElapsedTime Retrieves the amount of time that the archiving process has been running.
get_IsRecording Retrieves a Boolean value indicating whether the archiving process is running.
get_Path Retrieves the template path to which content is being archived.
put_AutoStart Specifies a Boolean value indicating whether archiving begins automatically when streaming begins.
put_Path Specifies the template path to which content is being archived.
StartRecord Starts the archiving process.
StopRecord Stops the archiving process.

Example Code

The following example illustrates how to retrieve a pointer to an IWMSAdminArchiveSink interface.

#include <windows.h>
#include <atlbase.h>    // Includes CComBSTR and CComVariant.

// To access system plug-in interfaces, the
// entire type library must be imported as shown.
#import "WMSServerTypeLib.dll" no_namespace named_guids \
                               raw_interfaces_only

// Declare variables and interfaces.
IWMSServer                    *pServer;
IWMSPublishingPoints          *pPubPoints;
IWMSPublishingPoint           *pPubPoint;
IWMSBroadcastPublishingPoint  *pBCPubPoint;
IWMSPlugins                   *pPlugins;
IWMSPlugin                    *pPlugin;
IDispatch                     *pDispatch;
IWMSAdminArchiveSink          *pAdminArchiveSink;

HRESULT         hr;
CComVariant     varIndex;
CComBSTR        bstrName;
CComBSTR        bstrFile;

// 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 and add a new broadcast publishing point.
hr = pServer->get_PublishingPoints(&pPubPoints);
if (FAILED(hr)) goto EXIT;
bstrName = "NewPubPoint";
bstrFile = "https://encoder:port";
hr = pPubPoints->Add(bstrName, WMS_PUBLISHING_POINT_BROADCAST,
                     bstrFile, &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 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;

EXIT:
    // TODO: Release temporary COM objects and uninitialize COM.

See Also

Previous Next