BitmapEffect.InitializeBitmapEffect Method (SafeHandle, SafeHandle)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Note: This API is now obsolete.

Initializes an IMILBitmapEffect handle obtained from CreateBitmapEffectOuter with the given IMILBitmapEffectPrimitive.

Namespace:   System.Windows.Media.Effects
Assembly:  PresentationCore (in PresentationCore.dll)

[ObsoleteAttribute("BitmapEffects are deprecated and no longer function.  Consider using Effects where appropriate instead.")]
protected static void InitializeBitmapEffect(
	SafeHandle outerObject,
	SafeHandle innerObject


Type: System.Runtime.InteropServices.SafeHandle

The outer IMILBitmapEffect wrapper to initialize.

Type: System.Runtime.InteropServices.SafeHandle

The inner IMILBitmapEffectPrimitive.

The following example shows an implementation of CreateUnmanagedEffect that uses the InitializeBitmapEffect method to initialize the wrapper object with the custom effect.

[SecurityPermissionAttribute(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
unsafe protected override SafeHandle CreateUnmanagedEffect()
    const uint CLSCTX_INPROC_SERVER = 1;
    Guid IID_IUnknown = new Guid("00000000-0000-0000-C000-000000000046");
    Guid guidEffectCLSID = new Guid("84CF07CC-34C4-460f-B435-3184F5F2FF2A");
    SafeHandle wrapper = BitmapEffect.CreateBitmapEffectOuter();

    COMSafeHandle unmanagedEffect;
    uint hresult = Ole32Methods.CoCreateInstance(
ref guidEffectCLSID,
ref IID_IUnknown,
out unmanagedEffect);
    InitializeBitmapEffect(wrapper, unmanagedEffect);
    if (0 == hresult) return wrapper;
    throw new Exception("Cannot instantiate effect. HRESULT = " + hresult.ToString());

.NET Framework
Available since 3.0
Return to top