Diseño de las claves del Registro

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Los filtros directShow se registran en dos lugares:

  • El archivo DLL que contiene el filtro se registra como servidor COM del filtro. Cuando una aplicación llama a CoCreateInstance para crear el filtro, la biblioteca COM de Microsoft Windows usa esta entrada del Registro para buscar el archivo DLL.
  • Se puede registrar información adicional sobre el filtro en una categoría de filtro. Esta información permite que el enumerador de dispositivos del sistema y el asignador de filtros busquen el filtro.

Los filtros no son necesarios para registrar la información de filtro adicional. Siempre que el archivo DLL se registre como servidor COM, una aplicación puede crear el filtro y agregarlo a un gráfico de filtros. Sin embargo, si desea que el enumerador de dispositivos del sistema o el asignador de filtros puedan detectar el filtro, debe registrar la información adicional.

La entrada del Registro para el archivo DLL tiene las siguientes claves:

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

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

La entrada del Registro para la información de filtro tiene las siguientes claves:

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

es el GUID de una categoría de filtro. (Consulte Categorías de filtro). La información de filtro se empaqueta en un formato binario. La interfaz IFilterMapper2 desempaqueta estos datos cuando busca un filtro en el Registro.

Todos los GUID de categoría de filtro se enumeran en el Registro bajo la clave siguiente:

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