Share via


IWMSBroadcastPublishingPoint::AnnounceToNSCFile

banner art

Previous Next

IWMSBroadcastPublishingPoint::AnnounceToNSCFile

The AnnounceToNSCFile method creates a multicast announcement (.nsc) file that is required for a client to connect to a multicast broadcast.

  • Note   This method is available only on Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition, and Windows Server 2008.

Syntax

  HRESULT AnnounceToNSCFile(
  BSTR  bstrDestinationFileName,
  VARIANT_BOOL  fOverwriteFlag
);

Parameters

bstrDestinationFileName

[in] String that contains the name of the file used to announce the multicast broadcast. This file must have an .nsc extension.

fOverwriteFlag

[in] VARIANT_BOOL that indicates whether the file should be overwritten if it already exists. There is no default value for this parameter.

Return Values

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

Return code Number Description
E_OUTOFMEMORY 0x8007000E There is insufficient memory to complete the function.
ERROR_PATH_NOT_FOUND 0x00000003 The path that was indicated by the bstrDestinationFileName could not be found.
NS_E_INVALID_OPERATING_SYSTEM_VERSION 0xC00D1459L This feature is not supported on this operating system.
NS_E_NAMESPACE_NODE_NOT_FOUND 0xC00D138DL AnnounceToNSCFile was called before Announce was called.
NS_E_PUBLISHING_POINT_REMOVED 0xC00D145AL The publishing point has already been removed.

Remarks

Players cannot connect directly to a server to render a multicast stream. Therefore, to obtain the information required to receive a multicast broadcast, you must use the AnnounceToNSCFile method to provide players a file with an .nsc file name extension. This file contains a multicast address, a port number, a rollover URL, source content headers, and so on.

Before calling the AnnounceToNSCFile method, you must add the names of all of the media files included in the multicast to the IWMSAnnouncementStreamFormats interface collection and call the IWMSBroadcastPublishingPoint::Announce method.

This method requires the Network Service account to have write and browse access to the specified path. This method is required for a multicast broadcast but not for a unicast broadcast.

Example Code

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

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

HRESULT         hr;
CComVariant     varIndex;
CComBSTR        bstrFile;
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;

        // Create an announcement file that clients can use
        // to connect to the publishing point.
        bstrFile = "c:\\wmpub\\wmroot\\announce.nsc";
        hr = pBCPubPoint->AnnounceToNSCFile(bstrFile, VARIANT_TRUE);
        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