IWMSDataSourcePlugin.OpenDataContainer (Visual Basic .NET)
The server calls the OpenDataContainer method to open or create a data container.
IWMSDataSourcePlugin.OpenDataContainer( pCommandContext As IWMSCommandContext,
pUserContext As IWMSContext,
pPresentationContext As IWMSContext,
pszContainerName As String,
dwFlags As UInt32,
pBufferAllocator As IWMSBufferAllocator,
pCallback As IWMSDataSourcePluginCallback,
qwContext As UInt64
)
Arguments
IWMSCommandContextIWMSCommandContext Object (Visual Basic .NET) that specifies the request Command Context. |
|
IWMSContextIWMSContext Object (Visual Basic .NET) that specifies the User Context. |
|
IWMSContext object that specifies the Presentation Context. |
|
String containing the name of the container to be opened. |
|
UInt32 containing a member of the WMS_DATA_CONTAINER_OPEN_FLAGS enumeration type that indicates the type of access requested. This must be a bitwise OR of one or more of the following values. |
Values |
Description |
---|---|
WMS_DATA_CONTAINER_READ_ACCESS |
The server requested read access. |
WMS_DATA_CONTAINER_WRITE_ACCESS |
The server requested write access. |
WMS_DATA_CONTAINER_CREATE_NEW_CONTAINER |
The server requested that a new data container be created. |
WMS_DATA_CONTAINER_ALLOW_BUFFER_IO |
The buffered data does not need to be page-aligned. |
WMS_DATA_CONTAINER_SHARED_SOURCE |
The server requested that the data container be used for a shared resource such as a broadcast. If the plug-in determines that the data path must not be shared, it can return COMADMIN_E_PRIVATE_ACCESSDENIED when it calls IWMSDataSourcePluginCallback.OnOpenDataContainer. |
IWMSBufferAllocatorIWMSBufferAllocator Object (Visual Basic .NET) that can be used by the data source plug-in to allocate additional buffers for reading or writing data. |
|
IWMSDataSourcePluginCallbackIWMSDataSourcePluginCallback Object (Visual Basic .NET) containing the callback function. The plug-in calls IWMSDataSourcePluginCallback.OnOpenDataContainer to return the results to the server. |
|
UInt64 containing a value defined by the server to identify which OpenDataContainer request the plug-in is responding to when it calls IWMSDataSourcePluginCallback.OnOpenDataContainer. The plug-in must pass this value back unaltered. |
Return Value
This method does not return a value. To report an error, the plug-in can throw a COMException object to the server. If the plug-in uses the IWMSEventLogIWMSEventLog Object (Visual Basic .NET) to log error information, it is recommended that it throw NS_E_PLUGIN_ERROR_REPORTED (0xC00D157D). 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 object to send custom error information to the Windows Event Viewer, throwing NS_E_PLUGIN_ERROR_REPORTED stops the server from also logging to the event viewer. For more information about plug-in error information, see Identifying Plug-in Errors.
Remarks
If the server requests that the data container be used for a shared broadcast by sending WMS_DATA_CONTAINER_SHARED_SOURCE in the dwFlags parameter when it calls OpenDataContainer, and the plug-in determines that the source cannot be shared, the plug-in can return COMADMIN_E_PRIVATE_ACCESSDENIED to the server in the hr parameter of IWMSDataSourcePluginCallback.OnOpenDataContainer. The COMADMIN_E_PRIVATE_ACCESSDENIED error is defined in the WinError.h file. A plug-in can decide that a source must not be shared if, for example, a distribution connection requires authentication or the content must be personalized for a specific end user. When the server receives this error, it deletes the shared data path and creates an on-demand (non-shared) data path instead.
Requirements
Reference: Add a reference to Microsoft.WindowsMediaServices.
Namespace: Microsoft.WindowsMediaServices.Interop.
Assembly: Microsoft.WindowsMediaServices.dll.
Library: WMSServerTypeLib.dll.
Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; and Windows Server 2008.