Share via


IWMSBroadcastPublishingPoint::AnnounceToNSCStream

banner art

Previous Next

IWMSBroadcastPublishingPoint::AnnounceToNSCStream

The AnnounceToNSCStream method retrieves an IStream interface that contains a file stream that can be used by a client to receive and render a broadcast.

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

Syntax

  HRESULT AnnounceToNSCStream(
  IUnknown**  ppNSCAnnounceStream
);

Parameters

ppNSCAnnounceStream

[out] Pointer to a pointer to an IUnknown interface that can be used to QueryInterface for the IStream interface.

Return Values

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

Return code Number Description
E_POINTER 0x80004003 ppNSCAnnounceStream is a NULL pointer argument.
NS_E_INVALID_OPERATING_SYSTEM_VERSION 0xC00D1459L This feature is not supported on this operating system.
NS_E_NAMESPACE_NODE_NOT_FOUND 0xC00D138DL AnnounceToNSCStream 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 AnnounceToNSCStream or AnnounceToNSCFile method to provide players with the necessary information. This stream contains a multicast address, a port number, a rollover URL, source content headers, and so on.

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

For more information about the IStream interface, see the IStream reference page in the MSDN Library.

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;
IUnknown                      *pStream;

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;

        // Create an announcement file that clients can use
        // to connect to the publishing point.
        hr = pBCPubPoint->AnnounceToNSCStream(&pStream);
        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