Udostępnij za pośrednictwem


Układ kluczy rejestru

[Funkcja skojarzona z tą stroną, DirectShow, jest starszą funkcją. Został zastąpiony przez MediaPlayer, IMFMediaEnginei Audio/Video Capture w Media Foundation. Te funkcje zostały zoptymalizowane pod kątem systemów Windows 10 i Windows 11. Firma Microsoft zdecydowanie zaleca, aby nowy kod używał MediaPlayer, IMFMediaEngine i Audio/Video Capture w programie Media Foundation zamiast DirectShow, jeśli to możliwe. Firma Microsoft sugeruje, że istniejący kod, który używa starszych interfejsów API, należy przepisać go do korzystania z nowych interfejsów API, jeśli to możliwe.]

Filtry DirectShow są rejestrowane w dwóch miejscach:

  • Biblioteka DLL zawierająca filtr jest rejestrowana jako serwer COM filtru. Gdy aplikacja wywołuje CoCreateInstance w celu utworzenia filtru, biblioteka Microsoft Windows COM używa tego wpisu rejestru do zlokalizowania biblioteki DLL.
  • Dodatkowe informacje o filtrze można zarejestrować w kategorii filtru. Te informacje umożliwiają modułowi wyliczającego urządzenia systemowego oraz mapatora filtrów.

Filtry nie są wymagane do zarejestrowania dodatkowych informacji o filtrze. Tak długo, jak biblioteka DLL jest zarejestrowana jako serwer COM, aplikacja może utworzyć filtr i dodać go do wykresu filtru. Jeśli jednak filtr ma być wykrywalny przez moduł wyliczający urządzenia systemowego lub maper filtru, musisz zarejestrować dodatkowe informacje.

Wpis rejestru dla biblioteki DLL ma następujące klucze:

HKEY_CLASSES_ROOT
    CLSID
        Filter CLSID 
            REG_SZ: (Default) = Friendly name

            InprocServer32
                REG_SZ: (Default) = File name of the DLL
                REG_SZ: ThreadingModel = Both

Wpis rejestru dla informacji o filtrze ma następujące klucze:

HKEY_CLASSES_ROOT
    CLSID
        Category
            Instance
                Filter CLSID
                    REG_SZ: CLSID = Filter CLSID
                    REG_BINARY: FilterData = Filter information
                    REG_SZ: FriendlyName = Friendly name
Category

to identyfikator GUID kategorii filtru. (Zobacz Kategorie filtrów.) Informacje o filtrze są pakowane w format binarny. Interfejs IFilterMapper2 rozpakuje te dane podczas wyszukiwania w rejestrze filtru.

Wszystkie identyfikatory GUID kategorii filtrów są wymienione w rejestrze pod następującym kluczem:

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