Freigeben über


IResourceManager::RequestResource-Methode (strmif.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die RequestResource -Methode fordert die Verwendung einer bestimmten registrierten Ressource an.

Syntax

HRESULT RequestResource(
  [in] LONG              idResource,
  [in] IUnknown          *pFocusObject,
  [in] IResourceConsumer *pConsumer
);

Parameter

[in] idResource

Ressourcentoken, das beim Registrieren der Ressource abgerufen wurde.

[in] pFocusObject

Zeiger auf die IUnknown-Schnittstelle eines Fokusobjekts, das einer Anforderung zugeordnet ist (in der Regel die IUnknown-Schnittstelle des Filters).

[in] pConsumer

Zeiger auf die IResourceConsumer-Schnittstelle für das Objekt, das die Ressource anfordert.

Rückgabewert

Gibt einen HRESULT-Wert zurück. Gibt S_OK zurück, wenn die angeforderte Ressource zurückgegeben wird, oder S_FALSE, wenn die Ressource nicht verfügbar ist. In diesem Fall ruft der Ressourcen-Manager das anfordernde Objekt zurück, wenn die Ressource verfügbar ist. Jede andere Rückgabe ist ein Fehler.

Bemerkungen

Wenn mehr als eine Anforderung für die Ressource vorhanden ist, bestimmt der Ressourcen-Manager die Priorität anhand des Fokusobjekts, das mit jeder Anforderung übergeben wird, und vergleicht es mit dem Fokusobjekt, das in der neuesten IResourceManager::SetFocus-Methode übergeben wurde.

Anforderungen werden in der folgenden Prioritätsreihenfolge ausgefüllt:

  1. Anforderungen, die mit genau demselben Fokusobjekt wie die letzte SetFocus-Methode ausgeführt wurden.
  2. Anforderungen, deren Fokusobjekt einen gemeinsamen Quellfilter verwendet, dessen Fokusobjekt ein gemeinsames Filterdiagramm verwendet.
  3. Anforderungen im gleichen Prozess wie der Fokus.
Beim Überprüfen dieser Priorität verwendet der Ressourcen-Manager QueryInterface für das Fokusobjekt für IID_IFilter. Falls gefunden, verwendet der Ressourcen-Manager IBaseFilter-Methoden , um das Filterdiagramm zu überprüfen und nach allgemeinen Quellfiltern mit dem aktuellen Fokusobjekt zu suchen.

Ein Filter sollte die IUnknown-Schnittstelle des Filters im pFocusObject-Parameter übergeben. Der Filterdiagramm-Manager vergleicht Filter mit dem Filtergraphen und versucht, Filter auf gängige Quellfilter zurückzuverfolgen, wenn Objekte des Fokus überprüft werden.

Das Fokusobjekt muss für die gesamte Lebensdauer der Anforderung gültig sein, bis entweder die IResourceManager::CancelRequest-Methode oder die IResourceManager::NotifyRelease-Methode aufgerufen wird, wobei der bStillWant-Parameter auf FALSE festgelegt ist.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile strmif.h (include Dshow.h)
Bibliothek Strmiids.lib

Siehe auch

Fehler- und Erfolgscodes

IResourceManager-Schnittstelle