Beispiel #1
0
        internal static IntPtr CreateNativeNCCEventArgsInstance(int action, object newItems, object oldItems, int newIndex, int oldIndex)
        {
            IntPtr intPtr  = IntPtr.Zero;
            IntPtr intPtr2 = IntPtr.Zero;

            RuntimeHelpers.PrepareConstrainedRegions();
            IntPtr result;

            try
            {
                if (newItems != null)
                {
                    intPtr = Marshal.GetComInterfaceForObject(newItems, typeof(IBindableVector));
                }
                if (oldItems != null)
                {
                    intPtr2 = Marshal.GetComInterfaceForObject(oldItems, typeof(IBindableVector));
                }
                result = EventArgsMarshaler.CreateNativeNCCEventArgsInstanceHelper(action, intPtr, intPtr2, newIndex, oldIndex);
            }
            finally
            {
                if (!intPtr2.IsNull())
                {
                    Marshal.Release(intPtr2);
                }
                if (!intPtr.IsNull())
                {
                    Marshal.Release(intPtr);
                }
            }
            return(result);
        }
Beispiel #2
0
        internal static IntPtr CreateNativeNCCEventArgsInstance(int action, object newItems, object oldItems, int newIndex, int oldIndex)
        {
            IntPtr num1 = IntPtr.Zero;
            IntPtr num2 = IntPtr.Zero;

            RuntimeHelpers.PrepareConstrainedRegions();
            try
            {
                if (newItems != null)
                {
                    num1 = Marshal.GetComInterfaceForObject(newItems, typeof(IBindableVector));
                }
                if (oldItems != null)
                {
                    num2 = Marshal.GetComInterfaceForObject(oldItems, typeof(IBindableVector));
                }
                return(EventArgsMarshaler.CreateNativeNCCEventArgsInstanceHelper(action, num1, num2, newIndex, oldIndex));
            }
            finally
            {
                if (!num2.IsNull())
                {
                    Marshal.Release(num2);
                }
                if (!num1.IsNull())
                {
                    Marshal.Release(num1);
                }
            }
        }