MFPKEY_PMP_Creation_Callback property

Sets a callback that creates the PMP Media Session during source resolution.

Data type

PROPVARIANT type (vt)

PROPVARIANT member

IUnknown*

VT_UNKNOWN

punkVal

Remarks

Some protected content might require the use of this property. If so, the source resolution process fails with the error code MF_E_RESOLUTION_REQUIRES_PMP_CREATION_CALLBACK.

To use this property, do the following.

  1. Call PSCreateMemoryPropertyStore to create a property store.
  2. Implement the IMFAsyncCallback callback interface.
  3. Set the MFPKEY_PMP_Creation_Callback property on the property store. The value is a pointer to the IMFAsyncCallback implementation.
  4. Call IMFSourceResolver::BeginCreateObjectFromURL. Pass in a pointer to the property store in the pProps parameter.

In the IMFAsyncCallback::Invoke method of your callback interface, do the following.

  1. Call MFCreatePMPMediaSession to create the PMP Media Session.
  2. Call IMFGetService::GetService on the PMP Media Session to a pointer to the IMFPMPHost interface.
  3. Call IMFAsyncResult::GetState on the result object that is passed in the pAsyncResult parameter of IMFAsyncCallback::Invoke. Query the returned IUnknown pointer for the IMFAsyncCallback interface.
  4. Call MFPutWorkItem with the following parameters:
    • dwQueue: MFASYNC_CALLBACK_QUEUE_STANDARD
    • pCallback: The IMFAsyncCallback pointer obtained in step 3.
    • pState: The IMFPMPHost pointer obtained in step 2.

Requirements

Requirement Value
Minimum supported client
Windows 8 [desktop apps | UWP apps]
Minimum supported server
Windows Server 2012 [desktop apps | UWP apps]
Header
Mfidl.h

See also

Media Foundation Properties

PMP Media Session

Protected Media Path

Source Resolver