IWMSBroadcastPublishingPoint::StartWithoutData

banner art

Previous Next

IWMSBroadcastPublishingPoint::StartWithoutData

The StartWithoutData method initializes the publishing point and sends multicast beacons that enable clients to connect to a multicast when no content is being streamed.

Syntax

  HRESULT StartWithoutData();

Parameters

This method takes no parameters.

Return Values

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Return code Number Description
E_ACCESSDENIED 0x8007000E The account that the WMS service is running under does not have access rights to the content requested.
ERROR_FILE_NOT_FOUND 0x00000002 The server was not able to find the file that was referenced by the Path property of the publishing point.
ERROR_PATH_NOT_FOUND 0x00000003 The server was not able to find the path that was referenced by the Path property of the publishing point.
NS_E_CANNOTCONNECT 0xC00D0006L The destination server that was indicated in the Path property exists, but the server was unable to establish a connection to the destination server.
NS_E_EMPTY_PLAYLIST 0xC00D14B5L The playlist that the server is attempting to stream does not reference any media streams or files.
NS_E_FILE_NOT_FOUND 0xC00D001AL The server was not able to find the file that was referenced by the Path property of the publishing point.
NS_E_INCOMPATIBLE_SERVER 0xC00D2EE8L The server that the publishing point attempted to connect to does not support the requested action.
NS_E_PLAYLIST_PARSE_FAILURE 0xC00D14B6L The playlist that the server is attempting to parse contains a syntax error.
NS_E_PLAYLIST_PLUGIN_NOT_FOUND 0xC00D157FL The server was not able to find a playlist parser plug-in to access the playlist that was referenced by the Path property of the publishing point.
NS_E_PUBLISHING_POINT_REMOVED 0xC00D145AL The publishing point has already been removed.
NS_E_SOURCE_PLUGIN_NOT_FOUND 0xC00D157EL The server was not able to find a data source plug-in to access the data that was referenced by the Path property of the publishing point.
NS_E_WSX_INVALID_VERSION 0xC00D151EL The version of the playlist that the server is attempting to stream is either not supported by the server or is not valid. Version information in a playlist is indicated by the <WSX> element.

Remarks

You can use this method to initialize the publishing point before starting it, thereby minimizing latency at the start of the broadcast. Multicast beacons are messages that are sent by the server that enable a client to remain connected to a multicast broadcast when the publishing point is not streaming content.

Example Code

#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;

        // Initialize the publishing point.
        hr = pBCPubPoint->StartWithoutData();
        if (FAILED(hr)) goto EXIT;

        pBCPubPoint->Release();
    }

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

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

Requirements

Header: wmsserver.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003 family, Windows Server 2008 family.

See Also

Previous Next