IWMSBroadcastPublishingPoint Interface

banner art

Previous Next

IWMSBroadcastPublishingPoint Interface

You can use the IWMSBroadcastPublishingPoint interface to configure and run a broadcast publishing point.

In addition to the methods inherited from the IWMSPublishingPoint interface, the IWMSBroadcastPublishingPoint interface exposes the following methods.

Method Description
Announce Updates the publishing points multicast configuration with data formats that have been added to the IWMSAnnouncementStreamFormats interface.
AnnounceToNSCFile Creates a multicast announcement (.nsc) file that is required for a client to connect to a multicast broadcast.
AnnounceToNSCStream Retrieves an IStream interface that contains a file stream that can be used by a client to receive and render a broadcast.
ExportXML Creates an XML file that contains publishing point configuration data.
get_AllowClientToStartandStop Retrieves a Boolean value that indicates whether a stopped publishing point can be started when a client tries to receive a broadcast from it.
get_AllowStreamSplitting Retrieves a Boolean value that indicates whether the stream can be split.
get_AnnouncementStreamFormats Retrieves an IWMSAnnouncementStreamFormats interface that contains a collection of names of media files whose formats are used in a multicast broadcast.
get_BroadcastDataSinks Retrieves an IWMSPlugins interface that contains a collection of broadcast data sink plug-ins that can be used to send content to a client.
get_BroadcastStatus Retrieves an enumeration value that indicates the status of the broadcast publishing point.
get_BufferSetting Retrieves a member of the WMS_BUFFER_SETTING enumeration type that indicates the amount of buffering that is done on a broadcast sink.
get_SharedPlaylist Retrieves an IWMSPlaylist interface for the broadcast publishing point.
get_UpTime Retrieves the elapsed time, in seconds, that the publishing point has been running.
put_AllowClientToStartAndStop Specifies a Boolean value that indicates whether a stopped publishing point can be started when a client tries to receive a broadcast from it.
put_AllowStreamSplitting Specifies a Boolean value that indicates whether the stream can be split.
put_BufferSetting Specifies a member of the WMS_BUFFER_SETTING enumeration type that indicates the amount of buffering that is done on a broadcast sink.
Start Starts the broadcast publishing point.
StartArchive Begins saving the streamed content to a file.
StartWithoutData Initializes the publishing point and sends multicast beacons that enable clients to connect to a multicast when no content is being streamed.
Stop Stops the broadcast publishing point.
StopArchive Stops archiving the content streamed by the publishing point.

Example Code

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

#include <windows.h>
#include <atlbase.h>    // Includes CComVariant.
#include "wmsserver.h"

// Declare variables and interfaces.
IWMSServer                    *pServer;
IWMSPublishingPoints          *pPubPoints;
IWMSPublishingPoint           *pPubPoint;
IWMSBroadcastPublishingPoint  *pBCPubPoint;

HRESULT         hr;
CComVariant     varIndex;
long            lCount;

// 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 retrieve the number of publishing points.
hr = pServer->get_PublishingPoints(&pPubPoints);
if (FAILED(hr)) goto EXIT;
hr = pPubPoints->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve each publishing point and query the
// IWMSBroadcastPublishingPoint interface.
for (long x = 0; x < lCount; x++)
{
    varIndex = x;
    hr = pPubPoints->get_Item(varIndex, &pPubPoint);
    if (FAILED(hr)) goto EXIT;

    // Retrieve the type of publishing point.
    WMS_PUBLISHING_POINT_TYPE pptType;
    hr = pPubPoint->get_Type(&pptType);
    if (FAILED(hr)) goto EXIT;

    if (pptType == WMS_PUBLISHING_POINT_TYPE_BROADCAST)
    {
        hr = pPubPoint->QueryInterface(IID_IWMSBroadcastPublishingPoint,
                                      (void **)&pBCPubPoint);
        if (FAILED(hr)) goto EXIT;

        pBCPubPoint->Release();
    }

    // Release temporary COM objects.
    pPubPoint->Release();
}

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

See Also

Previous Next