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 |
---|---|
|
Die Methode wurde erfolgreich ausgeführt. |
|
Die URL mit dem angeforderten Zugriff (Lese- oder Schreibzugriff) kann nicht geöffnet werden. |
|
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 |