Méthode IMFSourceResolver ::CreateObjectFromURL (mfidl.h)

Crée une source multimédia ou un flux d’octets à partir d’une URL. Cette méthode est synchrone.

Syntaxe

HRESULT CreateObjectFromURL(
  [in]  LPCWSTR        pwszURL,
  [in]  DWORD          dwFlags,
  [in]  IPropertyStore *pProps,
  [out] MF_OBJECT_TYPE *pObjectType,
  [out] IUnknown       **ppObject
);

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. Consultez la section Notes ci-dessous.

[in] pProps

Pointeur vers l’interface IPropertyStore d’un magasin de propriétés. La méthode transmet le magasin de propriétés au gestionnaire de schéma ou au gestionnaire d’octets qui crée l’objet. Le gestionnaire peut utiliser le 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] pObjectType

Reçoit un membre de l’énumération MF_OBJECT_TYPE , spécifiant le type d’objet qui a été créé.

[out] ppObject

Reçoit un pointeur vers l’interface IUnknown de l’objet. L’appelant doit libérer l’interface.

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
MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS
Le paramètre dwFlags contient des indicateurs mutuellement exclusifs.
MF_E_UNSUPPORTED_SCHEME
Le schéma d’URL n’est pas pris en charge.

Remarques

Le paramètre dwFlags doit contenir l’indicateur MF_RESOLUTION_MEDIASOURCE ou l’indicateur MF_RESOLUTION_BYTESTREAM , mais ne doit pas contenir les deux.

Il est recommandé de ne pas définir MF_RESOLUTION_WRITE sur l’argument dwFlags d’entrée , sauf si cela est nécessaire pour votre scénario. Dans la plupart des cas d’usage, les sources multimédias n’ont pas besoin d’être créées avec la capacité d’écriture. La création d’une source multimédia avec une fonctionnalité d’écriture peut avoir une probabilité de réussite inférieure à celle d’une source multimédia sans capacité d’écriture. Cela est dû au fait qu’il peut y avoir des contrôles plus stricts sur le contenu représenté par l’URL lors de la création d’une source multimédia avec une capacité d’écriture.

Pour les fichiers locaux, vous pouvez passer le nom de fichier dans le paramètre pwszURL ; le file: schéma n’est pas obligatoire.

Note Cette méthode ne peut pas être appelée à distance.
 

Exemples

//  Create a media source from a URL.
HRESULT CreateMediaSource(PCWSTR sURL, IMFMediaSource **ppSource)
{
    MF_OBJECT_TYPE ObjectType = MF_OBJECT_INVALID;

    IMFSourceResolver* pSourceResolver = NULL;
    IUnknown* pSource = NULL;

    // Create the source resolver.
    HRESULT hr = MFCreateSourceResolver(&pSourceResolver);
    if (FAILED(hr))
    {
        goto done;
    }

    // Use the source resolver to create the media source.

    // Note: For simplicity this sample uses the synchronous method to create 
    // the media source. However, creating a media source can take a noticeable
    // amount of time, especially for a network source. For a more responsive 
    // UI, use the asynchronous BeginCreateObjectFromURL method.

    hr = pSourceResolver->CreateObjectFromURL(
        sURL,                       // URL of the source.
        MF_RESOLUTION_MEDIASOURCE,  // Create a source object.
        NULL,                       // Optional property store.
        &ObjectType,        // Receives the created object type. 
        &pSource            // Receives a pointer to the media source.
        );
    if (FAILED(hr))
    {
        goto done;
    }

    // Get the IMFMediaSource interface from the media source.
    hr = pSource->QueryInterface(IID_PPV_ARGS(ppSource));

done:
    SafeRelease(&pSourceResolver);
    SafeRelease(&pSource);
    return hr;
}

Configuration requise

Condition requise Valeur
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

IMFSourceResolver

Programme de résolution source