IWMSPlayer::get_ID

banner art

Previous Next

IWMSPlayer::get_ID

The get_ID method retrieves a unique value that identifies a player that is receiving content from the server.

Syntax

  HRESULT get_ID(
  long*  pVal
);

Parameters

pVal

[out] Pointer to a long containing the ID.

Return Values

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

Return code Number Meaning
E_POINTER 0x80004003 pVal is a NULL pointer argument.

Remarks

This is not the same as a player's GUID. If a client uses multiple instances of a specific version of the player to connect to the server, each connection to the server by one of the instances of the player will have a unique session ID. However, the client GUID will be the same for all instances of the player.

Also, the ID number for each connection is based on the total amount of clients that are connected to the server since Windows Media Services was started. For example, if three clients connected to the server after the service starts, they would have ID numbers from one to three. If they disconnect from the server and another client connects to the server, it would have an ID number of four.

Example Code

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

// Declare variables and interfaces.
IWMSServer      *pServer;
IWMSPlayers     *pPlayers;
IWMSPlayer      *pPlayer;

HRESULT         hr;
CComVariant     varIndex;
long            lCount;
long            lValue;

// 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 client connection.
for (long x = 0; x < lCount; x++)
{
    varIndex = x;
    hr = pPlayers->get_Item(varIndex, &pPlayer);
    if (FAILED(hr)) goto EXIT;

    // Retrieve the ID of the client.
    hr = pPlayer->get_ID(&lValue);
    if (FAILED(hr)) goto EXIT;

    // Release temporary COM objects.
    pPlayer->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