Handling Individualization Events

[The feature associated with this page, Windows Media Format 11 SDK, is a legacy feature. It has been superseded by Source Reader and Sink Writer. Source Reader and Sink Writer have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use Source Reader and Sink Writer instead of Windows Media Format 11 SDK, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

When a DRM-enabled application attempts to open a protected file, the DRM component examines the DRM_DRMHeader_IndividualizedVersion attribute in the file, which specifies the minimum version level required to access the content. All levels of the DRM component work with all 7.0 and later versions of Windows Media Player and the Windows Media Format SDK. If the DRM component's individualized version level is lower than the required version, the DRM component will send a WMT_NEEDS_INDIVIDUALIZATION event to the application's IWMStatusCallback::OnStatus method. The application must then display a message or dialog box prompting users to either start or cancel the security upgrade. This prompt is necessary because, for privacy reasons, users must give their permission before a security upgrade is installed on their computer.

Note

The header of the content specifies only the first two digits for DRM_DRMVersion_IndividualizedVersion. In other words, to require a level 2.2.0.1 DRM component, the header would contain "2.2".

 

To start the security upgrade and/or trigger individualization, call the IWMDRMReader::Individualize method with the dwFlags parameter set to 1.

You must handle the WMT_INDIVIDUALIZE event in your application. This event will be fired multiple times by the DRM component with the status of the individualization process indicated in the pValue parameter, which is cast to a pointer to a WM_INDIVIDUALIZE_STATUS structure.

After the DRM component is successfully individualized, the application will receive a WMT_NO_RIGHTS_EX event, indicating that the application can now proceed to acquire a license for the content.

Note

DRM is not supported by the x64-based version of this SDK.

 

Handling License Acquisition Events

Individualizing DRM Applications

IWMDRMReader Interface