Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The OnDownloadContentFinished method is called by the server when media items have finished downloading to the cache.
IWMSCacheProxyServerCallback.OnDownloadContentFinished( lHr As Integer,
psaArchiveContexts As Object[],
varContext As Object
)
Arguments
[in] Integer indicating whether the call to IWMSCacheProxyServer.DownloadContent succeeded. |
|
[in] Array of Objects containing one or more archive contexts. When a single on-demand file is downloaded, the array will contain one context. When multiple items in a playlist are downloaded, the array will contain a context for each item, and the first entry will contain an archive context describing the entire playlist. |
|
[in] Object containing a value defined by the plug-in when it called IWMSCacheProxyServer.DownloadContent. For example, your plug-in can use this parameter to persist state information. The server does not alter this value and passes it back when calling OnDownloadContentFinished. |
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 (C#) 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.
Example
Imports Microsoft.WindowsMediaServices.Interop
Imports System.Runtime.InteropServices
Public Sub OnDownloadContentFinished(ByVal lHr As Integer, _
ByVal ArchiveContexts() As Object, _
ByVal varContext As Object) _
Implements IWMSCacheProxyServerCallback.OnDownloadContentFinished
Dim ci As ContentInfo
Dim ArchiveContext As IWMSContext
Dim CacheFile As String
Try
' The plug-in's call to IWMSCacheProxyServer.DownloadContent
' succeeded.
If lHr = 0 Then
' Retrieve the user-defined ContentInfo object from
' varContext parameter.
ci = varContext
If ArchiveContexts.Length > 0 Then
' The content is not a playlist.
If (ci.ContentType And 2) = 0 Then
ArchiveContext.GetStringValue(WMSDefines.WMS_ARCHIVE_FILENAME, _
WMSDefines.WMS_ARCHIVE_FILENAME_ID, _
CacheFile, _
0)
ci.CacheUrl = CacheFile
Else
' Save the playlist. SavePlaylist() is a
' user-defined function.
SavePlaylist(ci)
End If
' Update the information for cached content.
' The UpdateTable() function is user-defined.
UpdateTable(ci)
End If
' Call OnAddCacheItem() to inform the server
' that content was successfully downloaded.
ci.CacheProxyCallback.OnAddCacheItem(lHr, Nothing, varContext)
End If
Catch
Throw New COMException()
End Try
End Sub
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; Windows Server 2008.