IWMSPlaylistParserPlugin::CreatePlaylistParser

The CreatePlaylistParser method creates an IWMSPlaylistParserIWMSPlaylistParser Interface for use by the plug-in.

HRESULT CreatePlaylistParser(
  IWMSCommandContext*  pCommandContext,
  IWMSContext*  pUser,
  IWMSContext*  pPresentation,
  DWORD  dwFlags,
  IWMSClassObject*  pFactory,
  IWMSBufferAllocator*  pBufferAllocator,
  IWMSPlaylistParserPluginCallback*  pCallback,
  QWORD  qwContext
);

Arguments

pCommandContext

[in] Pointer to an IWMSCommandContextIWMSCommandContext Interface specifying the request command context that is passed in by the server.

pUser

[in] Pointer to an IWMSContextIWMSContext Interface specifying the user context that is passed in by the server.

pPresentation

[in] Pointer to an IWMSContext interface specifying the presentation context that is passed in by the server.

dwFlags

[in] Reserved for future use.

pFactory

[in] Pointer to an IWMSClassObject object implemented by the server, that can be used as a class factory to create the other objects.

pBufferAllocator

[in] Pointer to an IWMSBufferAllocatorIWMSBufferAllocator Interface to be used to allocate a buffer for reading and writing.

pCallback

[in] Pointer to an IWMSPlaylistParserPluginCallbackIWMSPlaylistParserPluginCallback Interface that is used by the plug-in to report to the server the result of the object creation process.

qwContext

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

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.

Remarks

This method is implemented by the plug-in and called by the server. If you plan to use any input parameter after this function returns, you must keep a pointer to it and increment the pointer's reference count.

Example

HRESULT STDMETHODCALLTYPE 
CSDKSamplePlaylistParserPlugin::CreatePlaylistParser(
                            IWMSCommandContext *pCommandContext,
                            IWMSContext *pUserContext,
                            IWMSContext *pPresentationContext,
                            DWORD dwFlags,
                            IWMSClassObject *pFactory,
                            IWMSBufferAllocator *pBufferAllocator,
                            IWMSPlaylistParserPluginCallback *pCallback,
                            QWORD qwContext)
{
    HRESULT hr = S_OK;
    
    CComPtr<CComSDKSamplePlaylistParser> spParser;

    if ( NULL == pCallback )
        return( E_INVALIDARG );

    spParser = new CComSDKSamplePlaylistParser;
    if ( spParser == NULL )
        return( E_OUTOFMEMORY );

    hr = spParser->Initialize(
                    pCommandContext,
                    pUserContext,
                    pPresentationContext,
                    m_spServerContext,
                    m_spNamedValues,
                    dwFlags,
                    pFactory
                    );
    if ( FAILED( hr ) )
        return( hr );

    pCallback->OnCreatePlaylistParser( hr, spParser, qwContext );
    return( S_OK );
}

Requirements

Header: wmsplaylistparser.h.

Library: WMSServerTypeLib.dll.

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

See Also

Concepts

Creating Playlist Parser Plug-ins

IWMSBufferAllocator Interface

IWMSClassObject Interface

IWMSCommandContext Interface

IWMSContext Interface

IWMSPlaylistParserPlugin Interface

IWMSPlaylistParserPluginCallback Interface

Playlist Parser Plug-in Sample