登錄機碼的配置
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
DirectShow 篩選準則會在兩個位置註冊:
- 包含篩選的 DLL 會註冊為篩選的 COM 伺服器。 當應用程式呼叫 CoCreateInstance 來建立篩選時,Microsoft Windows COM 程式庫會使用此登錄專案來尋找 DLL。
- 篩選準則的其他資訊可以在篩選類別內註冊。 這項資訊可讓 系統裝置列舉值 和 篩選對應程式 找出篩選準則。
不需要篩選才能註冊其他篩選資訊。 只要 DLL 註冊為 COM 伺服器,應用程式就可以建立篩選,並將其新增至篩選圖形。 不過,如果您希望系統裝置列舉值或篩選對應器能夠探索篩選準則,則必須註冊其他資訊。
DLL 的登錄專案具有下列機碼:
HKEY_CLASSES_ROOT
CLSID
Filter CLSID
REG_SZ: (Default) = Friendly name
InprocServer32
REG_SZ: (Default) = File name of the DLL
REG_SZ: ThreadingModel = Both
篩選資訊的登錄專案具有下列機碼:
HKEY_CLASSES_ROOT
CLSID
Category
Instance
Filter CLSID
REG_SZ: CLSID = Filter CLSID
REG_BINARY: FilterData = Filter information
REG_SZ: FriendlyName = Friendly name
Category
是篩選類別的 GUID。 (請參閱 Filter Categories.) 篩選資訊會封裝成二進位格式。 IFilterMapper2介面會在搜尋登錄中尋找篩選準則時解除封裝此資料。
所有篩選類別 GUID 都會列在登錄的下列機碼底下:
HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance