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.