internal static void AddHandler (DependencyObject obj, string eventName, UnmanagedEventHandler handler) { AppDomain domain = AppDomain.CurrentDomain; UnmanagedEventHandler wrapper = new UnmanagedEventHandler (delegate (IntPtr target, IntPtr calldata, IntPtr closure) { domain.DoCallBack (delegate () { handler (target, calldata, closure); }); }); NativeMethods.dependency_object_add_event_handler (obj.native, eventName, wrapper, obj.GCHandle); }