IWMSPacketStreamer::DoExtendedCommand

The DoExtendedCommand method is called by the server to pass extended commands, which are defined by a plug-in, up the data path.

HRESULT DoExtendedCommand(
  LPWSTR  szCommandName,
  IWMSCommandContext*  pCommand,
  IWMSPacketStreamerCallback*  pCallback,
  QWORD  qwContext
);

Arguments

szCommandName

[in] LPWSTR containing the name of the custom command.

pCommand

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

pCallback

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

qwContext

[in] QWORD containing a value defined by the server to identify which call to DoExtendedCommand the plug-in is responding to when it calls IWMSPacketStreamerCallback::OnDoExtendedCommand. 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::DoExtendedCommand( 
                LPWSTR szCommandName,
                IWMSCommandContext *pCommand,
                IWMSPacketStreamerCallback *pCallback,
                QWORD qwContext)
{
    if( NULL == pCallback || NULL == szCommandName )
    {
        return( E_INVALIDARG );
    }

    // TODO: Handle user-defined extended commands.

    ( void ) pCallback->OnDoExtendedCommand( S_OK, 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

IWMSPacketStreamer Interface