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.

DSHOW filters cannot parent UI and are therefore unable to display error messages directly, as an application normally does. The caller must parent all FDRM-related error UI.

DSHOW filters must have an entry point to display FDRM UI to the end user when there are errors such as invalid FDRM rights. If errors do occur during processing, the error is returned to the caller.

It is up to the DSHOW filter fail gracefully and return an error result if the content cannot be played or if it receives FDRM content and it is not FDRM enabled. For ring tones, IEventSound will call into the DSHOW filter, if the DSHOW filter cannot play a ring tone for any reason, such as when no rights remain on the content, and returns an error, IEventSound automatically defaults to the default ring tone so the phone will ring. The user is not notified that the rights had expired until they navigate to the ring tone picker to reselect the ring tone. At that time they receive a notice that the rights for that ring tone are expired.

The following list shows the general steps of error handling for FDRM:

  1. The FDRM related error is returned to the caller.

  2. The caller performs a query interface operation on the filter object for an IFileDrmHandlerinterface.

  3. The caller calls FileDrmHandleErroron the media file with the received HRESULT error as a parameter.

    The FileDrmHandleErrorfunction must not be called during normal processing of a FDRM-protected file.
  4. The necessary FDRM engine provided error UI is displayed. For example, the "Content cannot be used" or "Would you like to renew rights" dialog boxes might be displayed.

The DSHOW Filter and IFileDrmHandlerinterface implementation must be provided by the DSHOW Filter provider.

See Also