WMRMMetering.GetMeteringResponse
The GetMeteringResponse method generates a metering response for the client.
Syntax
String = WMRMMetering.GetMeteringResponse
Parameters
This method takes no parameters.
Return Values
If the method succeeds, it returns a String containing a metering response. If it fails, it returns a number in the error object.
Remarks
The metering response confirms that the metering data was successfully collected, and indicates to the client which items should be cleared and reset in the data store.
Example Code
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Declare variables.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
Dim MObj ' WMRMMetering object
Dim MDataObj ' WMRMMeteringData object
Dim MContentCollObj ' WMRMMeteringContentCollection object
Dim MContentObj ' WMRMMeteringContent object
Dim MActionCollObj ' WMRMMeteringActionCollection object
Dim MActionObj ' WMRMMeteringAction object
Dim MeterChallenge ' Metering challenge from the client
Dim MASPrivateKey ' Private key of the metering aggregation service
Dim MeterCert ' Metering certificate
Dim MeterXMLString ' Metering data in XML format
Dim MeterID ' Metering ID
Dim TransID ' Transaction ID
Dim ContentCollLength ' Number of items in the content collection
Dim ContentKeyID ' Key ID for a content item
Dim ActionCollLength ' Number of items in the action collection
Dim ActionName ' Action name
Dim ActionValue ' Action count
Dim MeterResponseString ' Metering response string
Dim x, y ' Counters
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Set variables.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
MeterChallenge = "<Replace with a metering challenge from the client>"
MeterCert = "<Replace with your metering certificate>"
MASPrivateKey = "<Replace with the private key for your service>"
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Extract metering data an a WMRMMeteringData object and as an XML string.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
Set MObj = Server.CreateObject("WMRMObjs.WMRMMetering")
MObj.ServerPrivateKey = MASPrivateKey
MObj.Challenge = MeterChallenge
Set MDataObj = MObj.GetMeteringData
Set MeterXMLString = MObj.GetMeteringDataAsXml
MeterID = MDataObj.MeteringId
TransID = MDataObj.TransactionId
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Retrieve the collection of content items.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
Set MContentCollObj = MDataObj.ContentCollection
ContentCollLength = MContentCollObj.length
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Retrieve the key ID and action data for each content item.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
For x = 0 To (ContentCollLength - 1)
Set MContentObj = MContentCollObj.item(x)
ContentKeyID = MContentObj.KeyID
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Retrieve the collection of actions for the current content item.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
Set MActionCollObj = MContentObj.Actions
ActionCollLength = MActionCollObj.length
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Retrieve each action and its value.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
For y = 0 To ActionCollLength - 1
Set MActionObj = MActionCollObj.item(y)
ActionName = MActionObj.Name
ActionValue = MActionObj.Value
Next
Next
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
' Generate the metering response.
'"""""""""""""""""""""""""""""""""""""""""""""""""""""
MObj.MeteringCertificate = MeterCert
MeterResponseString = MObj.GetMeteringResponse
Requirements
Version: Windows Media Rights Manager 10 SDK
Reference: wmrmobjs 1.0 Type Library
Library: wmrmobjs.dll
Platform: Windows Server 2003
See Also