Freigeben über


IResourceManager::SetFocus-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 SetFocus -Methode benachrichtigt den Ressourcen-Manager, dass ein angegebenes Objekt den Fokus des Benutzers erhalten hat.

Syntax

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

Parameter

[in] pFocusObject

Zeiger auf das Objekt, dem der Fokus des Benutzers zugewiesen wurde.

Rückgabewert

Gibt einen HRESULT-Wert zurück, der von der Implementierung abhängt. HRESULT kann eine der folgenden Standardkonstanten oder andere Werte sein, die nicht aufgeführt sind.

Rückgabecode Beschreibung
E_FAIL
Fehler.
E_POINTER
NULL-Zeigerargument.
E_INVALIDARG
Ungültiges Argument.
E_NOTIMPL
Die -Methode wird nicht unterstützt.
S_OK oder NOERROR
Erfolg.

Bemerkungen

In DirectShow ist das Objekt, das dem Benutzer den Fokus erhält, in der Regel ein Videorenderer, dessen Fenster den Fokus erhalten hat. Der Ressourcen-Manager gibt Anforderungen für Ressourcen in der folgenden Reihenfolge Priorität:

  1. Anforderungen, die mit dem im pFocusObject-Parameter angegebenen Fokusobjekt ausgeführt werden.
  2. Anforderungen, deren Fokusobjekt einen gemeinsamen Quellfilter verwendet.
  3. Anforderungen, deren Fokusobjekt ein gemeinsames Filterdiagramm verwendet.
  4. Anforderungen im gleichen Prozess wie der Fokus.
Nachdem ein Fokus festgelegt wurde, muss der Ressourcen-Manager ein Fokusobjekt verwalten, bis ReleaseFocus aufgerufen wird. Das heißt, nach dem Aufrufen dieser Methode müssen Sie ReleaseFocus verwenden, bevor die IUnknown-Schnittstelle des Fokusobjekts ungültig wird, es sei denn, Sie können garantieren, dass SetFocus in der Zwischenzeit von einem anderen Objekt aufgerufen wird. Für das Fokusobjekt wird keine Verweisanzahl gehalten.

Der Ressourcen-Manager hält diesen Zeiger, bis er ersetzt oder abgebrochen wird, und verwendet ihn, um Ressourcenkonflikte zu lösen. Es verwendet QueryInterface mindestens für die IBaseFilter-Schnittstelle und verwendet, falls gefunden, Methoden für diese Schnittstelle. Es ruft Methoden für IBaseFilter auf, um zu entscheiden, welcher Audiorenderer verwendet werden soll, wenn zwei vorhanden sind (es wird der mit einem Quellfilter ausgewählt, der dem Fokusobjekt gemeinsam ist), und um zu bestimmen, ob sich die beiden Objekte innerhalb desselben Filterdiagramms befinden.

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