IWMSCacheProxyServerCallback.OnCompareContentInformation (Visual Basic .NET)
Previous | Next |
IWMSCacheProxyServerCallback.OnCompareContentInformation (Visual Basic .NET)
The OnCompareContentInformation method is called by the server to respond when a cache plug-in calls IWMSCacheProxyServer.CompareContentInformation.
Syntax
Parameters
lHr
[in] Integer indicating whether the call to IWMSCacheProxyServer.CompareContentInformation succeeded.
CompareResponse
[in] Member of the WMS_CACHE_VERSION_COMPARE_RESPONSE enumeration type indicating the server response. This must be one of the following values.
Value | Description |
WMS_CACHE_VERSION_FAIL_TO_CHECK_VERSION | There was a problem in checking the version. The cache plug-in should either delete the cached content, or try to compare versions again. |
WMS_CACHE_VERSION_CACHE_STALE | The content is out of date. The cache plug-in must delete the cached content. |
WMS_CACHE_VERSION_CACHE_UP_TO_DATE | The content is current. The content can be streamed. |
pNewContentInfo
[in] IWMSContext object containing a content description context. The context is associated with the URL passed when the plug-in calls CompareContentInformation.
varContext
[in] Object containing a value defined by the plug-in when it called IWMSCacheProxyServer.CompareContentInformation. 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 OnCompareContentInformation.
Return Values
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 IWMSEventLog object 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 Code
Imports Microsoft.WindowsMediaServices.Interop Imports System.Runtime.InteropServices Public Sub OnCompareContentInformation(ByVal lHr As Integer, _ ByVal CompareResponse As WMS_CACHE_VERSION_COMPARE_RESPONSE, _ ByVal NewContentInfo As IWMSContext, _ ByVal varContext As Object) _ Implements IWMSCacheProxyServerCallback.OnCompareContentInformation Dim Response As WMS_CACHE_QUERY_RESPONSE Dim ci As ContentInfo Dim Context As IWMSContext Dim nIndex As Integer Dim strCacheUrl As String Try ' Set the response equal to a cache miss. Response = WMS_CACHE_QUERY_RESPONSE.WMS_CACHE_QUERY_MISS ' Retrieve the user defined ContentInfo object ' from the varContext parameter. ci = varContext ' The call to IWMSCacheProxyServer.CompareContentInfo succeeded. If lHr = 0 Then Select Case CompareResponse Case WMS_CACHE_VERSION_COMPARE_RESPONSE.WMS_CACHE_VERSION_CACHE_STALE ' The content has expired. Remove it from the DataSet object. RemoveEntryFromDataBase(ci, True) Case WMS_CACHE_VERSION_COMPARE_RESPONSE.WMS_CACHE_VERSION_CACHE_UP_TO_DATE ' The content is current. If (ci.ContentType And 1) <> 0 Then ' Broadcast content. Response = WMS_CACHE_QUERY_RESPONSE.WMS_CACHE_QUERY_HIT_PLAY_BROADCAST Else ' On-demand content. Response = WMS_CACHE_QUERY_RESPONSE.WMS_CACHE_QUERY_HIT_PLAY_ON_DEMAND End If ' Update the DataTable object with new information. ' The RemoveEntryFromDataBase(), GetContentInfoFromContext(), ' and UpdateTable() functions are user-defined. RemoveEntryFromDataBase(ci, False) GetContentInfoFromContext(NewContentInfo, ci) UpdateTable(ci) GetContentInfoContext(ci, Context) Case WMS_CACHE_VERSION_COMPARE_RESPONSE.WMS_CACHE_VERSION_FAIL_TO_CHECK_VERSION ' The server did not check version information. End Select ' Specify the cache URL. A basic starting point searches for ' the :// character sequence in the URL. If this sequence is ' not found, prefix the URL with file://. nIndex = ci.CacheUrl.IndexOf("://") If nIndex = -1 Then strCacheUrl = String.Format("file://", ci.CacheUrl) End If ' Send the response to the server. ci.CacheProxyCallback.OnQueryCache(0, _ Response, _ strCacheUrl, _ Context, _ Nothing, _ ci.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.
See Also
Previous | Next |