Condividi tramite


Metodo IMFSchemeHandler::BeginCreateObject (mfidl.h)

Avvia una richiesta asincrona per creare un oggetto da un URL.

Quando il resolver di origine crea un'origine multimediale da un URL, passa la richiesta a un gestore di schemi. Il gestore dello schema potrebbe creare un'origine multimediale direttamente dall'URL oppure restituire un flusso di byte. Se restituisce un flusso di byte, il resolver di origine usa un gestore di flusso di byte per creare l'origine multimediale dal flusso di byte.

Sintassi

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

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.

[in] pProps

Puntatore all'interfaccia IPropertyStore di un archivio delle proprietà. Il gestore dello schema può usare questo archivio proprietà per configurare l'oggetto. Questo parametro può essere NULL. Per altre informazioni, vedere Configurazione di un'origine multimediale.

[out] ppIUnknownCancelCookie

Riceve un puntatore IUnknown o il valore NULL. Se il valore non è NULL, è possibile annullare l'operazione asincrona passando questo puntatore al metodo IMFSchemeHandler::CancelObjectCreation . Il chiamante deve rilasciare l'interfaccia. Questo parametro può essere NULL, nel qual caso il puntatore IUnknown non viene restituito al chiamante.

[in] pCallback

Puntatore all'interfaccia IMFAsyncCallback di un oggetto callback. Il chiamante deve implementare questa interfaccia.

[in] punkState

Puntatore all'interfaccia IUnknown di un oggetto stato, definito dal chiamante. Questo parametro può essere NULL. È possibile utilizzare questo oggetto per contenere le informazioni sullo stato. L'oggetto viene restituito al chiamante quando viene richiamato il callback.

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.
E_ACCESSDENIED
Impossibile aprire l'URL con l'accesso richiesto (lettura o scrittura).
MF_E_UNSUPPORTED_BYTESTREAM_TYPE
Tipo di flusso di byte non supportato.

Commenti

Il parametro dwFlags deve contenere il flag MF_RESOLUTION_MEDIASOURCE o il flag MF_RESOLUTION_BYTESTREAM . Se il flag MF_RESOLUTION_MEDIASOURCE è impostato, il gestore dello schema potrebbe creare l'origine multimediale direttamente dall'URL oppure creare un flusso di byte. Il tipo di oggetto viene restituito nel parametro pObjectType del metodo IMFSchemeHandler::EndCreateObject . Se il gestore dello schema restituisce un flusso di byte, il resolver di origine passerà il flusso di byte a un gestore del flusso di byte, che creerà l'origine multimediale dal flusso di byte.

Se il flag MF_RESOLUTION_BYTESTREAM è impostato, il gestore dello schema tenterà di creare un flusso di byte dall'URL. Tuttavia, se il gestore dello schema è progettato per creare direttamente un'origine multimediale, anziché un flusso di byte, il metodo avrà esito negativo.

La tabella seguente riepiloga il comportamento di questi due flag quando viene passato a questo metodo:

Flag Oggetto creato
MF_RESOLUTION_MEDIASOURCE Origine multimediale o flusso di byte
MF_RESOLUTION_BYTESTREAM Flusso di byte
 

I flag MF_RESOLUTION_MEDIASOURCE e MF_RESOLUTION_BYTESTREAM possono essere combinati, anche se in questo caso è ridondante.

Al termine dell'operazione, il gestore dello schema chiama il metodo IMFAsyncCallback::Invoke . Il metodo Invoke deve chiamare IMFSchemeHandler::EndCreateObject per ottenere un puntatore all'oggetto creato.

Requisiti

   
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

IMFSchemeHandler

Gestori di schemi e gestori di Byte-Stream