示例#1
0
        public unsafe IObjectReference CreateInstanceWithAllParameters(global::System.Collections.Specialized.NotifyCollectionChangedAction action, global::System.Collections.IList newItems, global::System.Collections.IList oldItems, int newIndex, int oldIndex, object baseInterface, out IObjectReference innerInterface)
        {
            IObjectReference __newItems       = default;
            IObjectReference __oldItems       = default;
            IObjectReference __baseInterface  = default;
            IntPtr           __innerInterface = default;
            IntPtr           __retval         = default;

            try
            {
                __newItems = MarshalInterface <global::System.Collections.IList> .CreateMarshaler(newItems);

                __oldItems = MarshalInterface <global::System.Collections.IList> .CreateMarshaler(oldItems);

                __baseInterface = MarshalInspectable <object> .CreateMarshaler(baseInterface);

                global::WinRT.ExceptionHelpers.ThrowExceptionForHR(_obj.Vftbl.CreateInstanceWithAllParameters_0(ThisPtr, action, MarshalInterface <global::System.Collections.IList> .GetAbi(__newItems), MarshalInterface <global::System.Collections.IList> .GetAbi(__oldItems), newIndex, oldIndex, MarshalInspectable <object> .GetAbi(__baseInterface), out __innerInterface, out __retval));
                innerInterface = ObjectReference <IUnknownVftbl> .FromAbi(__innerInterface);

                return(ObjectReference <IUnknownVftbl> .FromAbi(__retval));
            }
            finally
            {
                MarshalInterface <global::System.Collections.IList> .DisposeMarshaler(__newItems);

                MarshalInterface <global::System.Collections.IList> .DisposeMarshaler(__oldItems);

                MarshalInspectable <object> .DisposeMarshaler(__baseInterface);

                MarshalInspectable <object> .DisposeAbi(__innerInterface);

                MarshalInspectable <object> .DisposeAbi(__retval);
            }
        }
        public unsafe IObjectReference CreateInstance(string name, object baseInterface, out IObjectReference innerInterface)
        {
            MarshalString    __name           = default;
            IObjectReference __baseInterface  = default;
            IntPtr           __innerInterface = default;
            IntPtr           __retval         = default;

            try
            {
                __name          = MarshalString.CreateMarshaler(name);
                __baseInterface = MarshalInspectable <object> .CreateMarshaler(baseInterface);

                global::WinRT.ExceptionHelpers.ThrowExceptionForHR(_obj.Vftbl.CreateInstance_0(ThisPtr, MarshalString.GetAbi(__name), MarshalInspectable <object> .GetAbi(__baseInterface), &__innerInterface, &__retval));
                innerInterface = ObjectReference <IUnknownVftbl> .FromAbi(__innerInterface);

                return(ObjectReference <IUnknownVftbl> .Attach(ref __retval));
            }
            finally
            {
                MarshalString.DisposeMarshaler(__name);
                MarshalInspectable <object> .DisposeMarshaler(__baseInterface);

                MarshalInspectable <object> .DisposeAbi(__innerInterface);

                MarshalInspectable <object> .DisposeAbi(__retval);
            }
        }
示例#3
0
文件: ICommand.cs 项目: wjk/CsWinRT
        public unsafe void Execute(object parameter)
        {
            IObjectReference __parameter = default;

            try
            {
                __parameter = MarshalInspectable.CreateMarshaler(parameter);
                global::WinRT.ExceptionHelpers.ThrowExceptionForHR(_obj.Vftbl.Execute_3(ThisPtr, MarshalInspectable.GetAbi(__parameter)));
            }
            finally
            {
                MarshalInspectable.DisposeMarshaler(__parameter);
            }
        }
示例#4
0
文件: ICommand.cs 项目: wjk/CsWinRT
        public unsafe bool CanExecute(object parameter)
        {
            IObjectReference __parameter = default;
            byte             __retval    = default;

            try
            {
                __parameter = MarshalInspectable.CreateMarshaler(parameter);
                global::WinRT.ExceptionHelpers.ThrowExceptionForHR(_obj.Vftbl.CanExecute_2(ThisPtr, MarshalInspectable.GetAbi(__parameter), out __retval));
                return(__retval != 0);
            }
            finally
            {
                MarshalInspectable.DisposeMarshaler(__parameter);
            }
        }
            public void Invoke(object sender, global::System.ComponentModel.PropertyChangedEventArgs e)
            {
                IntPtr           ThisPtr   = _nativeDelegate.ThisPtr;
                var              abiInvoke = Marshal.GetDelegateForFunctionPointer <Abi_Invoke>(_nativeDelegate.Vftbl.Invoke);
                IObjectReference __sender  = default;
                IObjectReference __e       = default;

                try
                {
                    __sender = MarshalInspectable.CreateMarshaler(sender);
                    __e      = global::ABI.System.ComponentModel.PropertyChangedEventArgs.CreateMarshaler(e);
                    global::WinRT.ExceptionHelpers.ThrowExceptionForHR(abiInvoke(ThisPtr, MarshalInspectable.GetAbi(__sender), global::ABI.System.ComponentModel.PropertyChangedEventArgs.GetAbi(__e)));
                }
                finally
                {
                    MarshalInspectable.DisposeMarshaler(__sender);
                    global::ABI.System.ComponentModel.PropertyChangedEventArgs.DisposeMarshaler(__e);
                }
            }
示例#6
0
文件: ICommand.cs 项目: wjk/CsWinRT
            public void Invoke(object sender, EventArgs args)
            {
                IntPtr           ThisPtr   = _nativeDelegate.ThisPtr;
                var              abiInvoke = Marshal.GetDelegateForFunctionPointer <Abi_Invoke>(_nativeDelegate.Vftbl.Invoke);
                IObjectReference __sender  = default;
                IObjectReference __args    = default;
                var              __params  = new object[] { ThisPtr, null, null };

                try
                {
                    __sender    = MarshalInspectable.CreateMarshaler(sender);
                    __params[1] = MarshalInspectable.GetAbi(__sender);
                    __args      = MarshalInspectable.CreateMarshaler(args);
                    __params[2] = MarshalInspectable.GetAbi(__args);
                    abiInvoke.DynamicInvokeAbi(__params);
                }
                finally
                {
                    MarshalInspectable.DisposeMarshaler(__sender);
                    MarshalInspectable.DisposeMarshaler(__args);
                }
            }