IWMSBroadcastPublishingPoint::get_AnnouncementStreamFormats

banner art

Previous Next

IWMSBroadcastPublishingPoint::get_AnnouncementStreamFormats

The get_AnnouncementStreamFormats method retrieves an IWMSAnnouncementStreamFormats interface that contains a collection of names of media files whose formats are used in 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 get_AnnouncementStreamFormats(
  IWMSAnnouncementStreamFormats**  ppFileNames
);

Parameters

ppFileNames

[out] Pointer to a pointer to an IWMSAnnouncementStreamFormats interface. This method calls AddRef internally. To avoid memory leaks, you must call Release when you are finished using the 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 ppFileNames is a NULL pointer argument.
NS_E_INVALID_OPERATING_SYSTEM_VERSION 0xC00D1459L This feature is not supported on this operating system.
NS_E_PUBLISHING_POINT_REMOVED 0xC00D145AL The publishing point has already been removed.

Remarks

The IWMSAnnouncementStreamFormats object contains a collection of names of media files whose formats are used in a multicast broadcast. A format consists of the codecs, frame size, bit rates, and so on, that are specified in the file header. One file per format must be specified. For example, if you are broadcasting two files that were created using one format and five files created by using another format, only two file names are added to the IWMSAnnouncementStreamFormats object, one to represent each format. When a file name is added to the collection, the associated file is parsed to extract the format information that a player must use to receive and render the content. The IWMSBroadcastPublishingPoint::Announce method adds the parsed information to the multicast configuration for the publishing point.

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;
IWMSAnnouncementStreamFormats *pAnnounceStreamFormats;

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;

        // Retrieve a pointer to the IWMSAnnouncementStreamFormats
        // interface.
        hr = pBCPubPoint->get_AnnouncementStreamFormats(
                                                 &pAnnounceStreamFormats);
        if (FAILED(hr)) goto EXIT;

        // Add a file to the IWMSAnnoucementStreamFormats
        // interface for multicast broadcasting.
        bstrFile = "file://c:\\wmpub\\wmroot\\welcome2.asf";
        hr = pAnnounceStreamFormats->Add(bstrFile);
        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