IWMSDataContainerVersion::SetEntityTag
.gif)
| Previous | Next |
IWMSDataContainerVersion::SetEntityTag
The SetEntityTag method specifies an entity tag.
Syntax
HRESULT SetEntityTag( BSTR szEntityTag );
Parameters
szEntityTag
[in] BSTR containing an entity tag.
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.
Remarks
You can specify any string as an entity tag. Entity tags provide an additional way to differentiate between types of content.
Example Code
Data source plug-ins that retrieve data from files can specify an entity tag. The entity tag can be any BSTR. The following example uses the file size as an entity tag.
// Declare variables.
HRESULT hr = S_OK;
WIN32_FILE_ATTRIBUTE_DATA FileAttributeData;
IWMSDataContainerVersion *pVersion = NULL;
LPWSTR pszPath;
BSTR bstrFileSize = NULL;
// Use a pointer to an IWMSClassObject interface, pClassFactory,
// to create an IWMSDataContainerVersion object.
hr = pClassFactory->CreateInstance( IID_IWMSDataContainerVersion,
(void **) &pVersion );
if (FAILED(hr)) goto EXIT;
// TODO: Specify the last modified time, the expiration time, and the
// cache flags.
// Retrieve file attributes using a Win32 API call, GetFileAttributesEx,
// and set the file size into the IWMSDataContainerVersion object.
GetFileAttributesEx( pszPath, GetFileExInfoStandard, &FileAttributeData );
hr = pVersion->SetContentSize( FileAttributeData.nFileSizeLow, FileAttributeData.nFileSizeHigh );
if (FAILED(hr)) goto EXIT;
// Convert the file size to a BSTR and use it to specify an entity tag.
qwFileSize = MAKEQWORD( FileAttributeData.nFileSizeLow, FileAttributeData.nFileSizeHigh );
_ui64tow( qwFileSize, (LPWSTR) pszFileSize, 10 );
bstrFileSize = SysAllocString( (LPWSTR) pszFileSize );
hr = pVersion->SetEntityTag( bstrFileSize );
if (FAILED(hr)) goto EXIT;
EXIT:
// TODO: Release temporary objects.
Requirements
Header: datacontainerversion.h.
Library: WMSServerTypeLib.dll.
Platform: Windows Server 2003, Enterprise Edition; Windows Server 2003, Datacenter Edition; Windows Server 2008.
See Also
- IWMSDataContainerVersion Interface
- IWMSDataContainerVersion::GetEntityTag
- IWMSDataContainerVersion::GetEntityTagCount
| Previous | Next |