共用方式為


iResourceManager::SetFocus 方法 (strmif.h)

[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]

方法 SetFocus 會通知資源管理員,指定的物件已獲得使用者的焦點。

語法

HRESULT SetFocus(
  [in] IUnknown *pFocusObject
);

參數

[in] pFocusObject

已指定使用者焦點之物件的指標。

傳回值

傳回相依于實作的 HRESULT 值。 HRESULT 可以是下列其中一個標準常數,或未列出的其他值。

傳回碼 Description
E_FAIL
失敗。
E_POINTER
Null 指標引數。
E_INVALIDARG
無效引數。
E_NOTIMPL
不支援方法。
S_OK或 NOERROR
成功。

備註

在 DirectShow 中,指定使用者焦點的物件通常是視訊轉譯器,其視窗已收到焦點。 資源管理員會依下列順序來優先要求資源:

  1. 使用 pFocusObject 參數中指定的焦點物件提出的要求。
  2. 要求其焦點物件共用通用來源篩選準則。
  3. 要求其焦點物件共用通用篩選圖形。
  4. 在與焦點相同的進程中要求。
設定焦點之後,資源管理員必須維護焦點物件,直到 呼叫 ReleaseFocus 為止。 也就是說,在呼叫這個方法之後,您必須在焦點物件的IUnknown介面變成無效之前使用ReleaseFocus,除非您可以保證 SetFocus 同時由不同的物件呼叫。 焦點物件上不會保留參考計數。

資源管理員會保留此指標,直到取代或取消為止,並使用該指標來解析資源爭用。 它至少會針對IBaseFilter介面使用QueryInterface,如果找到的話,將會在該介面上使用方法。 它會在 IBaseFilter 上呼叫方法,以決定如果有兩個 (它會選擇焦點物件通用來源篩選) 的音訊轉譯器,以及判斷兩個物件是否位於相同的篩選圖形中。

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 strmif.h (包含 Dshow.h)
程式庫 Strmiids.lib

另請參閱

錯誤和成功碼

IResourceManager 介面