Share via


Méthode IMFSchemeHandler::BeginCreateObject (mfidl.h)

Commence une demande asynchrone pour créer un objet à partir d’une URL.

Lorsque le programme de résolution de source crée une source multimédia à partir d’une URL, il transmet la demande à un gestionnaire de schéma. Le gestionnaire de schéma peut créer une source multimédia directement à partir de l’URL ou renvoyer un flux d’octets. S’il retourne un flux d’octets, le programme de résolution source utilise un gestionnaire de flux d’octets pour créer la source multimédia à partir du flux d’octets.

Syntaxe

HRESULT BeginCreateObject(
  [in]  LPCWSTR          pwszURL,
  [in]  DWORD            dwFlags,
  [in]  IPropertyStore   *pProps,
  [out] IUnknown         **ppIUnknownCancelCookie,
  [in]  IMFAsyncCallback *pCallback,
  [in]  IUnknown         *punkState
);

Paramètres

[in] pwszURL

Chaîne terminée par null qui contient l’URL à résoudre.

[in] dwFlags

OR au niveau du bit d’un ou de plusieurs indicateurs. Consultez Indicateurs du programme de résolution de source.

[in] pProps

Pointeur vers l’interface IPropertyStore d’un magasin de propriétés. Le gestionnaire de schéma peut utiliser ce magasin de propriétés pour configurer l’objet. Ce paramètre peut être NULL. Pour plus d’informations, consultez Configuration d’une source multimédia.

[out] ppIUnknownCancelCookie

Reçoit un pointeur IUnknown ou la valeur NULL. Si la valeur n’est pas NULL, vous pouvez annuler l’opération asynchrone en passant ce pointeur à la méthode IMFSchemeHandler::CancelObjectCreation . L’appelant doit libérer l’interface. Ce paramètre peut être NULL, auquel cas le pointeur IUnknown n’est pas retourné à l’appelant.

[in] pCallback

Pointeur vers l’interface IMFAsyncCallback d’un objet de rappel. L’appelant doit implémenter cette interface.

[in] punkState

Pointeur vers l’interface IUnknown d’un objet d’état, défini par l’appelant. Ce paramètre peut être NULL. Vous pouvez utiliser cet objet pour stocker des informations d’état. L’objet est retourné à l’appelant lorsque le rappel est appelé.

Valeur retournée

Cette méthode retourne un code HRESULT. Les valeurs possibles sont notamment celles figurant dans le tableau suivant.

Code de retour Description
S_OK
S_OK
E_ACCESSDENIED
Impossible d’ouvrir l’URL avec l’accès demandé (lecture ou écriture).
MF_E_UNSUPPORTED_BYTESTREAM_TYPE
Type de flux d’octets non pris en charge.

Notes

Le paramètre dwFlags doit contenir l’indicateur MF_RESOLUTION_MEDIASOURCE ou l’indicateur MF_RESOLUTION_BYTESTREAM . Si l’indicateur MF_RESOLUTION_MEDIASOURCE est défini, le gestionnaire de schéma peut créer la source multimédia directement à partir de l’URL ou créer un flux d’octets. Le type d’objet est retourné dans le paramètre pObjectType de la méthode IMFSchemeHandler::EndCreateObject . Si le gestionnaire de schéma retourne un flux d’octets, le programme de résolution source transmet le flux d’octets à un gestionnaire de flux d’octets, qui crée la source multimédia à partir du flux d’octets.

Si l’indicateur MF_RESOLUTION_BYTESTREAM est défini, le gestionnaire de schéma tente de créer un flux d’octets à partir de l’URL. Toutefois, si le gestionnaire de schéma est conçu pour créer directement une source multimédia plutôt qu’un flux d’octets, la méthode échoue.

Le tableau suivant récapitule le comportement de ces deux indicateurs lorsqu’ils sont passés à cette méthode :

Indicateur Objet créé
MF_RESOLUTION_MEDIASOURCE Source multimédia ou flux d’octets
MF_RESOLUTION_BYTESTREAM Flux d’octets
 

Les indicateurs MF_RESOLUTION_MEDIASOURCE et MF_RESOLUTION_BYTESTREAM peuvent être combinés, bien que dans ce cas, ils soient redondants.

Une fois l’opération terminée, le gestionnaire de schéma appelle la méthode IMFAsyncCallback::Invoke . La méthode Invoke doit appeler IMFSchemeHandler::EndCreateObject pour obtenir un pointeur vers l’objet créé.

Spécifications

   
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête mfidl.h
Bibliothèque Mfuuid.lib

Voir aussi

IMFSchemeHandler

Gestionnaires de schémas et gestionnaires de Byte-Stream