IWMSDataSourcePlugin::CreateDataSourceDirectory
Previous | Next |
IWMSDataSourcePlugin::CreateDataSourceDirectory
The server calls the CreateDataSourceDirectory method to create a directory data container.
Syntax
HRESULT CreateDataSourceDirectory( IWMSCommandContext* pCommandContext, LPWSTR pszContainerName, DWORD dwFlags, IWMSDataSourcePluginCallback* pCallback, QWORD qwContext );
Parameters
pCommandContext
[in] Pointer to an IWMSCommandContext interface containing a command context.
pszContainerName
[in] Pointer to a null-terminated string containing the path of the directory to create.
dwFlags
[in] DWORD containing the flags.
pCallback
[in] Pointer to an IWMSDataSourcePluginCallback interface. The plug-in calls IWMSDataSourcePluginCallback::OnCreateDirectory to return the results to the server.
qwContext
[in] QWORD containing a value defined by the server to identify which CreateDataSourceDirectory request the plug-in is responding to when it calls IWMSDataSourcePluginCallback::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
The following example illustrates a possible implementation of CreateDataSourceDirectory for an NTFS data source plug-in.
#define URL_SCHEME_LENGTH 7 #define URL_SCHEME L"file://" HRESULT STDMETHODCALLTYPE CDataSourcePlugin::CreateDataSourceDirectory( 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 ); if (FAILED(hr)) goto EXIT; EXIT: // TODO: Release temporary objects. 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 |