編寫自己的DirectShow Filter,除了編寫實現功能的代碼之外,要使自己的DLL稱爲一個Filter,還有一個重要的工作需要做,那就是註冊信息。DirectShow Filter有兩種信息註冊,一種是包含Filter的DLL作爲COM組件的註冊信息,一種是註冊Filter種類信息。
當應用程序通過CoCreateInstane創建Filter的時候,通過第一中註冊信息定位DLL。
第二種信息註冊後,可以通過系統設備枚舉器和Filter Mapped定位到Filter,這種信息不是必須註冊,當不註冊時候,Filter被默認爲CLSID_LegacyAmFilterCategory類型。
註冊Filter種類信息分一下步驟:
一、聲明Filter信息
二、聲明類工廠
三、重載DllRegisterServer
四、註銷Filter的函數
IFilterMapper2的RegisterFilter接口註冊Filter信息,接口的第四個參數決定Filter屬於什麼種類,如果使用CLSID_VideoCompressorCategory,在GraphEdit中看到的Filter就在Video Capture Source中。