次の方法で共有


レジストリ キーのレイアウト

DirectShow フィルタは、次の 2 つの場所に登録される。

  • フィルタが含まれた DLL は、そのフィルタの COM サーバーとして登録される。アプリケーションが CoCreateInstance を呼び出してフィルタを作成すると、Microsoft Windows COM ライブラリはそのレジストリ エントリを使って DLL を見つける。
  • フィルタに関する追加情報はフィルタ カテゴリ内に登録できる。System Device Enumeratorフィルタ マッパーはこの情報を使ってフィルタを見つけられる。

フィルタは追加フィルタ情報を登録する "必要はない"。DLL が COM サーバーとして登録されている限り、アプリケーションはフィルタを作成し、フィルタ グラフに追加できる。しかし、System Device Enumerator またはフィルタ マッパーによりフィルタが見つけられるようにする場合、追加情報を登録する必要がある。

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 である。(「フィルタ カテゴリ」を参照すること。)フィルタ情報はバイナリ フォーマットにパックされる。IFilterMapper2 インターフェイスが、フィルタのレジストリを検索するときに、このデータをアンパックする。

すべてのフィルタ カテゴリ GUID はレジストリの次のキーの下に示される。

HKEY_CLASSES_ROOT\CLSID\{DA4E3DA0-D07D-11d0-BD50-00A0C911CE86}\Instance