Saltar a contenido

Guía de Registro del SDK

Los filtros DirectShow y componentes del SDK frecuentemente requieren registro apropiado para funcionar correctamente dentro de tus aplicaciones. Esta guía proporciona métodos de implementación detallados para registrar filtros DirectShow a través de múltiples lenguajes de programación.

Descripción General del Registro

La mayoría de los filtros DirectShow en el SDK pueden registrarse usando la interfaz IVFRegister. Este enfoque estandarizado funciona consistentemente a través de entornos de desarrollo. Sin embargo, algunos filtros especializados (como los convertidores RGB2YUV) están diseñados para funcionar sin registro explícito.

Métodos de Registro por Lenguaje

Implementación en C++

El siguiente código C++ demuestra cómo acceder a la interfaz de registro:

// {59E82754-B531-4A8E-A94D-57C75F01DA30}
DEFINE_GUID(IID_IVFRegister,
    0x59E82754, 0xB531, 0x4A8E, 0xA9, 0x4D, 0x57, 0xC7, 0x5F, 0x01, 0xDA, 0x30);

/// <summary>
/// Interfaz de registro de filtros.
/// </summary>
DECLARE_INTERFACE_(IVFRegister, IUnknown)
{
    /// <summary>
    /// Establece el registro.
    /// </summary>
    /// <param name="licenseKey">
    /// Clave de Licencia.
    /// </param>
    STDMETHOD(SetLicenseKey)
        (THIS_
            WCHAR * licenseKey
            )PURE;
};

Implementación en C

Para desarrolladores .NET, la interfaz de registro puede importarse usando el siguiente código C#:

    /// <summary>
    /// Interfaz pública de registro de filtros.
    /// </summary>
    [ComImport]
    [System.Security.SuppressUnmanagedCodeSecurity]
    [Guid("59E82754-B531-4A8E-A94D-57C75F01DA30")]
    [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
    public interface IVFRegister
    {
        /// <summary>
        /// Establece el registro.
        /// </summary>
        /// <param name="licenseKey">
        /// Clave de Licencia.
        /// </param>
        [PreserveSig]
        void SetLicenseKey([In, MarshalAs(UnmanagedType.LPWStr)] string licenseKey);
    }

Implementación en Delphi

Para desarrolladores Delphi, implementa la interfaz de registro de la siguiente manera:

const
  IID_IVFRegister: TGUID = '{59E82754-B531-4A8E-A94D-57C75F01DA30}';

type
  /// <summary>
  /// Interfaz pública de registro de filtros.
  /// </summary>
  IVFRegister = interface(IUnknown)
    /// <summary>
    /// Establece el registro.
    /// </summary>
    /// <param name="licenseKey">
    /// Clave de Licencia.
    /// </param>
    procedure SetLicenseKey(licenseKey: PWideChar); stdcall;
  end;