IWMSBroadcastPublishingPoint::get_SharedPlaylist

banner art

Previous Next

IWMSBroadcastPublishingPoint::get_SharedPlaylist

The get_SharedPlaylist method retrieves an IWMSPlaylist interface for the broadcast publishing point.

Syntax

  HRESULT get_SharedPlaylist(
  IWMSPlaylist**  pVal
);

Parameters

pVal

[out] Pointer to a pointer to the returned playlist object. 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 pVal is a NULL pointer argument.
NS_E_PUBLISHING_POINT_REMOVED 0xC00D145AL The publishing point has already been removed.

Remarks

You must call IWMSBroadcastPublishingPoint::Start before calling the get_SharedPlaylist method. The broadcast publishing point path (returned by the IWMSPublishingPoint::get_Path method) must point to a playlist file.

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;
IWMSPlaylist                  *pPlaylist;

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;

        // Retrieve the current status of the publishing point.
        // The status is reported as the result of a bitwise OR
        // of any of the designated values.
        WMS_BROADCAST_PUBLISHING_POINT_STATUS ppsStatus;
        hr = pBCPubPoint->get_BroadcastStatus(&ppsStatus);
        if (FAILED(hr)) goto EXIT;

        // If the publishing point is currently stopped, start
        // it and retrieve the shared playlist file.
        if (ppsStatus == WMS_BROADCAST_PUBLISHING_POINT_STOPPED)
        {
            hr = pBCPubPoint->Start();
            if (FAILED(hr)) goto EXIT;
            hr = pBCPubPoint->get_SharedPlaylist(&pPlaylist);
            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