Share via


IWMSDataContainerVersion::SetEntityTag

banner art

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

Previous Next