Skip to main content

How to register the DirectShow filter or SDK?

You can register any filter from SDK using the IVFRegister interface. Some filters (RGB2YUV for example) do not require registration.

Using C++

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

/// <summary>
/// Filter registration interface.
/// </summary>
DECLARE_INTERFACE_(IVFRegister, IUnknown)
{
/// <summary>
/// Sets registered.
/// </summary>
/// <param name="licenseKey">
/// License Key.
/// </param>
STDMETHOD(SetLicenseKey)
(THIS_
WCHAR * licenseKey
)PURE;
};

Using C#

    /// <summary>
/// Public filter registration interface.
/// </summary>
[ComImport]
[System.Security.SuppressUnmanagedCodeSecurity]
[Guid("59E82754-B531-4A8E-A94D-57C75F01DA30")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IVFRegister
{
/// <summary>
/// Sets registered.
/// </summary>
/// <param name="licenseKey">
/// License Key.
/// </param>
[PreserveSig]
void SetLicenseKey([In, MarshalAs(UnmanagedType.LPWStr)] string licenseKey);
}

Using Delphi

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

type
/// <summary>
/// Public filter registration interface.
/// </summary>
IVFRegister = interface(IUnknown)
/// <summary>
/// Sets registered.
/// </summary>
/// <param name="licenseKey">
/// License Key.
/// </param>
procedure SetLicenseKey(licenseKey: PWideChar); stdcall;
end;

Also, we can provide alternative registration ways, for example using a system registry, or using a custom build.