IMFPMediaPlayer::CreateMediaItemFromObject method

Important  Deprecated. This API may be removed from future releases of Windows. Applications should use the Media Session for playback.

Creates a media item from an object.

Syntax


HRESULT CreateMediaItemFromObject(
  [in]   IUnknown *pIUnknownObj,
  [in]   BOOL fSync,
  [in]   DWORD_PTR dwUserData,
  [out]  IMFPMediaItem **ppMediaItem
);

Parameters

pIUnknownObj [in]

A pointer to the object's IUnknown interface. See Remarks.

fSync [in]

If TRUE, the method blocks until it completes. If FALSE, the method does not block and completes asynchronously.

dwUserData [in]

Application-defined value to store in the media item. To retrieve this value from the media item, call IMFPMediaItem::GetUserData.

ppMediaItem [out]

Receives a pointer to the IMFPMediaItem interface. The caller must release the interface. If fSync is TRUE, this parameter must be a valid pointer. If bSync is FALSE, this parameter must be NULL.

Return value

The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return codeDescription
S_OK

The method succeeded.

E_INVALIDARG

Invalid argument.

MF_E_INVALIDREQUEST

Invalid request. This error can occur when fSync is FALSE and the application did not provide a callback interface. See Remarks.

MF_E_SHUTDOWN

The object's Shutdown method was called.

 

Remarks

The pIUnknownObj parameter must specify one of the following:

This method does not queue the media item for playback. To queue the item for playback, call IMFPMediaPlayer::SetMediaItem.

The CreateMediaItemFromObject method can be called either synchronously or asynchronously:

  • If fSync is TRUE, the method completes synchronously. The IMFPMediaItem pointer is returned in the ppMediaItem parameter.
  • If fSync is FALSE, the method completes asynchronously. When the operation completes, the application's IMFPMediaPlayerCallback::OnMediaPlayerEvent callback method is invoked. The event type is MFP_EVENT_TYPE_MEDIAITEM_CREATED. The event data contains the IMFPMediaItem pointer for the new media item.

The callback interface is set when you first call MFPCreateMediaPlayer to create the MFPlay player object. If you do not provide a callback interface, the fSync parameter must be TRUE. Otherwise, CreateMediaItemFromObject returns MF_E_INVALIDREQUEST.

If you make multiple asynchronous calls to CreateMediaItemFromObject, they are not guaranteed to complete in the same order. Use the dwUserData parameter to match created media items with pending requests.

Configuring the Source

If pIUnknownObj points to a byte stream, you can configure the media source by performing the following steps:

  1. Call QueryInterface on the IMFPMediaPlayer pointer to get the IPropertyStore interface.
  2. Call IPropertyStore::SetValue to set properties for the media source. For a list of configuration properties, see Configuring a Media Source. Third-party media sources may define custom properties.
  3. Call the CreateMediaItemFromObject method to create the media item.

If pIUnknownObj points to a media source, you can configure the source at the time that you create it.

Requirements

Minimum supported client

Windows 7 [desktop apps only]

Minimum supported server

Windows Server 2008 R2 [desktop apps only]

Header

Mfplay.h

See also

IMFPMediaPlayer
Using MFPlay for Audio/Video Playback

 

 

Community Additions

ADD
Show:
© 2014 Microsoft