Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The OnSeek method is called by a plug-in to respond when the server calls IWMSPacketStreamer::Seek.
HRESULT OnSeek(
HRESULT hr,
QWORD qwActualPosition,
QWORD qwContext
);
Arguments
hr |
[in] HRESULT indicating whether the call to IWMSPacketStreamer::Seek was successful. |
qwActualPosition |
[in] QWORD indicating the seek position. |
qwContext |
[in] QWORD containing a value defined by the server to identify which call to IWMSPacketStreamer::Seek the plug-in is responding to when it calls OnSeek. You must pass this value back unaltered. |
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
STDMETHODIMP CNetworkDataContainer::Seek(
IWMSCommandContext *pCommand,
DWORD dwOffsetType,
QWORD qwOffset,
DWORD dwFlags,
IWMSPacketStreamerCallback *pCallback,
QWORD qwContext)
{
if( m_State >= STREAMER_ERROR )
{
return( NS_E_SHUTDOWN );
}
switch( dwOffsetType )
{
case WMS_SEEK_TO_TIME :
m_SeekInfo.Type = SPT_TIME;
m_SeekInfo.StreamTime = (DWORD) qwOffset;
break;
case WMS_SEEK_TO_PACKET :
m_SeekInfo.Type = SPT_PACKET;
m_SeekInfo.dwPacketId = (DWORD) qwOffset;
break;
case WMS_SEEK_TO_BYTE_OFFSET :
m_SeekInfo.Type = SPT_BYTE;
m_SeekInfo.dwObjectId = LODWORD( qwOffset );
m_SeekInfo.dwPacketId = HIDWORD( qwOffset );
break;
case WMS_SEEK_TO_PLAYLIST_ENTRY :
m_SeekPLPos.dwOffset = (DWORD) qwOffset;
break;
}
pCallback->OnSeek( S_OK, qwOffset, 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.