IWMSPlaylist::get_CallerEntry

banner art

Previous Next

IWMSPlaylist::get_CallerEntry

The get_CallerEntry method retrieves the playlist element that is pushed onto the playlist's call stack immediately before the specified playlist element.

Syntax

  HRESULT get_CallerEntry(
  
  IXMLDOMElement*
  
  pPlaylistEntry
  ,
  
  IXMLDOMElement**
  
  ppCallerPlaylistEntry
  
  );

Parameters

pPlaylistEntry

[in] Pointer to a playlist entry object.

ppCallerPlaylistEntry

[out] Pointer to a pointer to a caller playlist entry 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 Meaning
E_INVALIDARG 0x80070057 One of the parameters is a NULL pointer argument.

Remarks

A value of NULL is returned if a playlist element is specified that is not currently active or if it was the first playlist element that was pushed onto the call stack.

Example Code

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

// Declare variables and interfaces.
IWMSServer      *pServer;
IWMSPlayers     *pPlayers;
IWMSPlayer      *pPlayer;
IWMSPlaylist    *pPlaylist;
IXMLDOMElement  *pCurPlaylistEntry;
IXMLDOMElement  *pPlaylistEntry;

HRESULT         hr;
VARIANT_BOOL    bVal;
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 an IWMSPlayers interface
// and retrieve the total count of current connections.
hr = pServer->get_Players(&pPlayers);
if (FAILED(hr)) goto EXIT;
hr = pPlayers->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve information about each requested playlist.
for (long x = 0; x < lCount; x++)
{
    varIndex = x;
    hr = pPlayers->get_Item(varIndex, &pPlayer);
    if (FAILED(hr)) goto EXIT;

    // Retrieve the playlist that was requested by the client
    // if one exists.
    hr = pPlayer->get_RequestedPlaylist(&pPlaylist);
    if (FAILED(hr)) goto EXIT;

    // Retrieve information about the current playlist entry.
    hr = pPlaylist->get_CurrentPlaylistEntry(&pPlaylistEntry);
    if (FAILED(hr)) goto EXIT;

    // Retrieve information about each playlist entry.
    while (pPlaylistEntry != NULL)
    {
        pCurPlaylistEntry = pPlaylistEntry;

        // Retrieve the next playlist entry.
        hr = pPlaylist->get_CallerEntry(pCurPlaylistEntry,
                                        &pPlaylistEntry);
        if (FAILED(hr)) goto EXIT;

        // Retrieve a Boolean value indicating whether this
        // playlist entry is cued.
        hr = pPlaylist->get_IsStreamCued(pPlaylistEntry, &bVal);
        if (FAILED(hr)) goto EXIT;
    }

    // Release temporary COM objects.
    pPlayer->Release();
    pPlaylist->Release();
    pPlaylistEntry->Release();
    pCurPlaylistEntry->Release();
}



Requirements

Header: wmsserver.h

Library: WMSServerTypeLib.dll

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

See Also

Previous Next