IMFSchemeHandler::BeginCreateObject-Methode (mfidl.h)

Startet eine asynchrone Anforderung zum Erstellen eines Objekts aus einer URL.

Wenn der Quelllöser eine Medienquelle aus einer URL erstellt, übergibt er die Anforderung an einen Schemahandler. Der Schemahandler erstellt möglicherweise eine Medienquelle direkt aus der URL, oder er gibt einen Bytedatenstrom zurück. Wenn ein Bytedatenstrom zurückgegeben wird, verwendet der Quelllöser einen Bytestreamhandler, um die Medienquelle aus dem Bytedatenstrom zu erstellen.

Syntax

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

Parameter

[in] pwszURL

Eine NULL-endende Zeichenfolge, die die aufzulösende URL enthält.

[in] dwFlags

Ein bitweises OR eines oder mehrerer Flags. Weitere Informationen finden Sie unter Quellkonfliktlöserflags.

[in] pProps

Ein Zeiger auf die IPropertyStore-Schnittstelle eines Eigenschaftenspeichers. Der Schemahandler kann diesen Eigenschaftenspeicher verwenden, um das Objekt zu konfigurieren. Dieser Parameter kann NULL sein. Weitere Informationen finden Sie unter Konfigurieren einer Medienquelle.

[out] ppIUnknownCancelCookie

Empfängt einen IUnknown-Zeiger oder den Wert NULL. Wenn der Wert nicht NULL ist, können Sie den asynchronen Vorgang abbrechen, indem Sie diesen Zeiger an die IMFSchemeHandler::CancelObjectCreation-Methode übergeben. Der Aufrufer muss die Schnittstelle freigeben. Dieser Parameter kann NULL sein. In diesem Fall wird der IUnknown-Zeiger nicht an den Aufrufer zurückgegeben.

[in] pCallback

Ein Zeiger auf die IMFAsyncCallback-Schnittstelle eines Rückrufobjekts. Der Aufrufer muss diese Schnittstelle implementieren.

[in] punkState

Ein Zeiger auf die IUnknown-Schnittstelle eines Zustandsobjekts, das vom Aufrufer definiert wird. Dieser Parameter kann NULL sein. Sie können dieses Objekt verwenden, um Zustandsinformationen zu enthalten. Das -Objekt wird an den Aufrufer zurückgegeben, wenn der Rückruf aufgerufen wird.

Rückgabewert

Die Methode gibt ein HRESULT zurück. Mögliches Werte (aber nicht die Einzigen) sind die in der folgenden Tabelle.

Rückgabecode BESCHREIBUNG
S_OK
Die Methode wurde erfolgreich ausgeführt.
E_ACCESSDENIED
Die URL mit dem angeforderten Zugriff (Lese- oder Schreibzugriff) kann nicht geöffnet werden.
MF_E_UNSUPPORTED_BYTESTREAM_TYPE
Nicht unterstützter Bytestreamtyp.

Hinweise

Der dwFlags-Parameter muss das MF_RESOLUTION_MEDIASOURCE-Flag oder das MF_RESOLUTION_BYTESTREAM-Flag enthalten. Wenn das flag MF_RESOLUTION_MEDIASOURCE festgelegt ist, kann der Schemahandler die Medienquelle direkt aus der URL oder einen Bytedatenstrom erstellen. Der Objekttyp wird im pObjectType-Parameter der IMFSchemeHandler::EndCreateObject-Methode zurückgegeben. Wenn der Schemahandler einen Bytedatenstrom zurückgibt, übergibt der Quelllöser den Bytedatenstrom an einen Bytestreamhandler, der die Medienquelle aus dem Bytedatenstrom erstellt.

Wenn das flag MF_RESOLUTION_BYTESTREAM festgelegt ist, versucht der Schemahandler, einen Bytedatenstrom aus der URL zu erstellen. Wenn der Schemahandler jedoch für die direkte Erstellung einer Medienquelle und nicht eines Bytedatenstroms konzipiert ist, schlägt die Methode fehl.

In der folgenden Tabelle ist das Verhalten dieser beiden Flags bei der Übergabe an diese Methode zusammengefasst:

Flag Objekt erstellt
MF_RESOLUTION_MEDIASOURCE Medienquelle oder Bytestream
MF_RESOLUTION_BYTESTREAM Bytedatenstrom
 

Die flags MF_RESOLUTION_MEDIASOURCE und MF_RESOLUTION_BYTESTREAM können kombiniert werden, obwohl sie in diesem Fall redundant sind.

Nach Abschluss des Vorgangs ruft der Schemahandler die IMFAsyncCallback::Invoke-Methode auf. Die Invoke-Methode sollte IMFSchemeHandler::EndCreateObject aufrufen, um einen Zeiger auf das erstellte Objekt abzurufen.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [Desktop-Apps | UWP-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [Desktop-Apps | UWP-Apps]
Zielplattform Windows
Kopfzeile mfidl.h
Bibliothek Mfuuid.lib

Weitere Informationen

IMFSchemeHandler

Schemahandler und Byte-Stream Handler