IWMSDataSourcePluginCallback::OnCreateDirectory

banner art

Previous Next

IWMSDataSourcePluginCallback::OnCreateDirectory

The OnCreateDirectory method is called by a data source plug-in to respond when the server calls IWMSDataSourcePlugin::CreateDataSourceDirectory.

Syntax

  HRESULT OnCreateDirectory(
  HRESULT  hr,
  QWORD  qwContext
);

Parameters

hr

[in] HRESULT containing the result of the call to IWMSDataSourcePlugin::CreateDataSourceDirectory.

qwContext

[in] QWORD containing a value defined by the server to identify which IWMSDataSourcePlugin::CreateDataSourceDirectory request the plug-in is responding to when it calls OnCreateDirectory. The plug-in must pass this value back unaltered.

Return Values

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 IWMSEventLog 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 Code

#define URL_SCHEME_LENGTH   7
#define URL_SCHEME   L"file://"

HRESULT STDMETHODCALLTYPE 
CDataSourcePlugin::CreateDirectory( 
                    IWMSCommandContext *pCommandContext,
                    LPWSTR pszContainerName,
                    DWORD dwFlags,
                    IWMSDataSourcePluginCallback *pCallback,
                    QWORD qwContext
                    )
{
    // Declare variables.
    HRESULT hr = S_OK;
    BOOL fSuccess;
    LPWSTR pszNtfsPathname = NULL;
    LPSECURITY_ATTRIBUTES lpSecurityAttributes = NULL;

    // Specify the path name and create the directory. Drop
    // the scheme type from the path name.
    pszNtfsPathname = pszContainerName + URL_SCHEME_LENGTH;
    fSuccess = ::CreateDirectory( pszNtfsPathname, lpSecurityAttributes );

    // Return the result to the server.
    hr = pCallback->OnCreateDirectory( hr, qwContext );

    return( hr );
}

Requirements

Header: datacontainer.h.

Library: WMSServerTypeLib.dll.

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

See Also

Previous Next