Condividi tramite


Metodo IMFSourceResolver::CreateObjectFromURL (mfidl.h)

Crea un'origine multimediale o un flusso di byte da un URL. Questo metodo è asincrono.

Sintassi

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

Parametri

[in] pwszURL

Stringa con terminazione Null contenente l'URL da risolvere.

[in] dwFlags

OR bit per bit di uno o più flag. Vedere Flag del resolver di origine. Vedere la sezione Note riportata di seguito.

[in] pProps

Puntatore all'interfaccia IPropertyStore di un archivio delle proprietà. Il metodo passa l'archivio delle proprietà al gestore dello schema o al gestore del flusso di byte che crea l'oggetto. Il gestore può usare l'archivio delle proprietà per configurare l'oggetto. Questo parametro può essere NULL. Per altre informazioni, vedere Configurazione di un'origine multimediale.

[out] pObjectType

Riceve un membro dell'enumerazione MF_OBJECT_TYPE , specificando il tipo di oggetto creato.

[out] ppObject

Riceve un puntatore all'interfaccia IUnknown dell'oggetto. Il chiamante deve rilasciare l'interfaccia.

Valore restituito

Il metodo restituisce un valore HRESULT. I valori possibili includono, ma non sono limitati a, quelli indicati nella tabella seguente.

Codice restituito Descrizione
S_OK
Il metodo è riuscito.
MF_E_SOURCERESOLVER_MUTUALLY_EXCLUSIVE_FLAGS
Il parametro dwFlags contiene flag che si escludono a vicenda.
MF_E_UNSUPPORTED_SCHEME
Lo schema URL non è supportato.

Commenti

Il parametro dwFlags deve contenere il flag MF_RESOLUTION_MEDIASOURCE o il flag MF_RESOLUTION_BYTESTREAM , ma non deve contenere entrambi.

È consigliabile non impostare MF_RESOLUTION_WRITE sull'argomento di input dwFlags , a meno che non sia necessario per lo scenario. Per la maggior parte dei casi d'uso, non è necessario creare origini multimediali con funzionalità di scrittura. La creazione di un'origine multimediale con funzionalità di scrittura può avere una probabilità di esito positivo inferiore rispetto alla creazione di un'origine multimediale senza funzionalità di scrittura. Ciò è dovuto al fatto che possono essere presenti controlli più rigorosi sul contenuto rappresentato dall'URL durante la creazione di un'origine multimediale con funzionalità di scrittura.

Per i file locali, è possibile passare il nome del file nel parametro pwszURL ; lo file: schema non è obbligatorio.

Nota Questo metodo non può essere chiamato in modalità remota.
 

Esempio

//  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;
}

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [app desktop | App UWP]
Server minimo supportato Windows Server 2008 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione mfidl.h
Libreria Mfuuid.lib

Vedi anche

IMFSourceResolver

Resolver di origine