IWMSPushSource::StartPushing

The StartPushing method is called by the server to start the flow of packets down a data path.

HRESULT StartPushing(
  IWMSCommandContext*  pCommand,
  double  dblRate,
  IWMSPushSourceCallback*  pCallback,
  QWORD  qwContext
);

Arguments

pCommand

[in] Pointer to an IWMSCommandContextIWMSCommandContext Interface containing the context associated with this call.

dblRate

[in] double containing the rate at which to deliver content. A value of 1.0 yields normal playback while a value of -5.0 yields a faster than normal rewind.

pCallback

[in] Pointer to an IWMSPushSourceCallbackIWMSPushSourceCallback Interface used to report the status of this method call.

qwContext

[in] QWORD containing a value defined by the server to identify which call to StartPushing the plug-in is responding to when it calls IWMSPushSourceCallback::OnStartPushing. You must pass this value back unaltered when you call OnStartPushing.

Return Value

If the method succeeds, the plug-in must return S_OK. To report an error, the plug-in can return any HRESULT other than S_OK. If the plug-in uses the IWMSEventLogIWMSEventLog Interface to log error information directly to the Windows Event Viewer, it is recommended that it return NS_E_PLUGIN_ERROR_REPORTED. Typically, the server attempts to make plug-in error information available to the server object model, the Windows Event Viewer, and the troubleshooting list in the details pane of the Windows Media Services MMC. However, if the plug-in uses the IWMSEventLog interface to send custom error information to the Windows Event Viewer, returning NS_E_PLUGIN_ERROR_REPORTED stops the server from also logging to the event viewer. For more information about retrieving plug-in error information, see Identifying Plug-in Errors.

Example

HRESULT STDMETHODCALLTYPE 
CNetworkDataContainer::StartPushing( 
                     IWMSCommandContext *pCommand,
                     double Rate,
                     IWMSPushSourceCallback *pCallback,
                     QWORD qwContext) 
{
    HRESULT hr = S_OK;
     
    if( PLAYING == m_StreamState )
    {
        // TODO: Handle playing state.
    }
   
    hr = m_pStream->Start( &m_Info, &m_Pos );
    if( FAILED( hr ) ) goto EXIT;

    hr = S_OK;

EXIT:
    if( FAILED( hr ) )
        pCallback->OnStartPushing( hr, qwContext );
    
    return( S_OK );
}

Requirements

Header: wmsdatapath.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; Windows Server 2008.

See Also

Concepts

IWMSPushSource Interface