共用方式為


篩選圖形管理員

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

Filter Graph Manager 會建置及控制篩選圖形。 此物件是 DirectShow 中的中央元件。 應用程式會使用它來建置及控制篩選圖形。 Filter Graph 管理員也會處理控制篩選圖形的同步處理、事件通知和其他層面。 呼叫 coCreateInstance 來建立此物件。

CLSID

建立 Filter Graph 管理員有兩個 CLSID:

CLSID 描述
CLSID_FilterGraph 在共用背景工作線程上建立 Filter Graph Manager。
CLSID_FilterGraphNoThread 在應用程式線程上建立 Filter Graph Manager。

 

一般而言,應用程式應該使用CLSID_FilterGraph。 這兩個 CLSID 都會建立相同的物件,但會使用不同的線程模型:

  • CLSID_FilterGraph會在背景工作線程上建立 Filter Graph 管理員,此線程是由相同進程中所有CLSID_FilterGraph實例共用。 線程會分派篩選所傳送的訊息,並控制篩選條件所建立之任何視窗的存留期。
  • CLSID_FilterGraphNoThread會在應用程式的線程上建立 Filter Graph Manager。 如果您使用這個 CLSID,呼叫 CoCreateInstance 的線程 必須有分派訊息的訊息迴圈;否則,可能會發生死結。 此外,在應用程式線程結束之前,它必須釋放 Filter Graph Manager 和所有圖形物件(例如篩選、針腳、參考時鐘等等)。

介面

Filter Graph 管理員會公開下列介面:

DirectShow 物件