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 |
---|---|
|
Il metodo è riuscito. |
|
Il parametro dwFlags contiene flag che si escludono a vicenda. |
|
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.
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 |