Important:
This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.
4/8/2010

This function enables an application to verify that an object has the required rights before it uses FDRM-protected content.

Syntax

HRESULT FileDrmVerifyRights (
  HWND 
hwndParent,
  LPCTSTR 
pszFileName,
  DWORD 
dwRight,
  DWORD 
dwFlags,
  PDWORD 
pdwRightsStatus
);

Parameters

hwndParent

[in] Handle to the window that owns any UI elements such as windows, dialog boxes, or message boxes displayed by this function.

pszFileName

[in] Path to the file that contains the FDRM-protected content.

dwRight

[in] The FDRM right to be used when opening the FDRM-protected content. This is the right specified by the application. Use the bitmask to specify only one right at a time. The following table shows the possible values for dwRight.

Flag Bitmask Description

FDRRF_PLAY

0x00000001

Play audio/video content.

FDRRF_DISPLAY

0x00000002

Display images.

FDRRF_EXECUTE

0x00000004

Execute applications.

FDRRF_PRINT

0x00000008

Print content.

FDRRF_FORWARD

0x00000010

Content can be forwarded.

dwFlags

[in] Flags to control the behavior of FDRM_VerifyRights. This is a bitmask of FDRVF_* flag values. The following table shows the possible values for dwFlags.

Flag Bit mask Description

FDRVF_NOUI

0x00000001

Do not display any UI.

This enables the calling application to ensure that this call will not block waiting for user input.

FDRVF_NORENEW

0x00000002

No rights renewal.

Does not attempt to update the rights associated with a piece of content, either through user interaction or automatically.

FDRVF_VERIFY_CONTINUE

0x00000004

Verify the continued use of the content.

Specified when FileDrmCommitRightshas been called and returned success for a piece of content and the consuming application of the content is still consuming the same instance of the content but needs to re-verify rights. For example, a media player might begin playing a song but be interrupted by a phone call. Once the phone call is completed the media player will call FileDrmVerifyRightsto verify that it still has rights to continue playing that content. This flag may allow content to continue being used even if there are no longer valid rights. For example, if the content has restrictions on the number of times it can be used, and that usage count went to zero in the last call to FileDrmCommitRights, then the user should still be allowed to use that content until is has been completely consumed.

pdwRightsStatus

[out] Status of rights. The following table shows the possible values for dwRight.

Flag Bitmask Description

FDRVS_USER_CAN_UPDATE

0x00000001

Rights are invalid but the user can update them.

FDRVS_UPDATE_PENDING

0x00000002

A rights update is pending.

Return Value

This function can return any HRESULT and the application should use the SUCCEEDED and FAILED macros to check the results. The following table shows additional HRESULT values that may be returned.

Value Description

S_FDRM_NOPROVIDER

Success, but no FDRM provider found.

S_FDRM_NOTDRMOBJECT

Success, but the target is not a FDRM object.

E_FDRM_FILEDELETED

Unable to verify rights. The file is deleted.

E_FDRM_CANCELLED

Unable to verify rights. The operation is cancelled.

E_FDRM_LICENSEPENDING

Unable to verify rights. The license is pending.

E_FDRM_NOTALLOWED

Unable to verify rights. The operation not allowed.

Remarks

Before an application can use FDRM-protected content it must call this function to ensure that the object can be used as intended. This function verifies that the object has the appropriate rights and, if necessary, prompts the user to verify that they want to consume rights or renew expired rights.

Note:
When you use the FDRM API in a DSHOW filter you must have the FDRVF_NOUI flag specified when you call the FileDrmVerifyRightsfunction.

Requirements

Header fdrm.h
Library aygshell.lib
Windows Embedded CE Windows Embedded CE 6.0 and later
Windows Mobile Pocket PC for Windows Mobile Version 5.0 and later, Smartphone for Windows Mobile Version 5.0 and later

See Also