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 |
|
Impossible d’ouvrir l’URL avec l’accès demandé (lecture ou écriture). |
|
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 |