Share via


IWMSBroadcastPublishingPoint::put_BufferSetting

banner art

Previous Next

IWMSBroadcastPublishingPoint::put_BufferSetting

The put_BufferSetting method specifies a member of the WMS_BUFFER_SETTING enumeration type that indicates the amount of buffering that is done on a broadcast sink.

Syntax

  HRESULT put_BufferSetting(
  
  WMS_BUFFER_SETTING
  
  newVal
  
  );

Parameters

newVal

[in] Member of the WMS_BUFFER_SETTING enumeration type that indicates the amount of buffering that is done on a broadcast sink. This must be one of the following values.

Value Description
WMS_BUFFER_SETTING_UNSPECIFIED Reserved for future use.
WMS_BUFFER_SETTING_MINIMIZE_STARTUP_LATENCY Instructs the server to buffer data ahead of the client connection so that when the client connects, the server can send data to it more quickly.
WMS_BUFFER_SETTING_PROPOGATION_LATENCY Minimizes the amount of data the server buffers before streaming.

Return Values

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

Return code Number Description
E_INVALIDARG 0x8007000E newVal is not a valid argument.
NS_E_PUBLISHING_POINT_REMOVED 0xC00D145AL The publishing point has already been removed.

Remarks

The default value is WMS_BUFFER_SETTING_MINIMIZE_STARTUP_LATENCY.

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;

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 buffer setting for the publishing point.
        WMS_BUFFER_SETTING bsSetting;
        hr = pBCPubPoint->get_BufferSetting(&bsSetting);
        if (FAILED(hr)) goto EXIT;

        // Set a buffer setting if it is currently unspecified.
        if (bsSetting == WMS_BUFFER_SETTING_UNSPECIFIED)
        {
            hr = pBCPubPoint->put_BufferSetting(
                            WMS_BUFFER_SETTING_MINIMIZE_STARTUP_LATENCY);
            if (FAILED(hr)) goto EXIT;
        }
        pBCPubPoint->Release();
    }

    // Release temporary COM objects.
    pPubPoint->Release();
}



Requirements

Header: wmsserver.h.

Library: WMSServerTypeLib.dll.

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

See Also

Previous Next