Ejemplo n.º 1
0
        protected unsafe void SetObject(IntPtr guid, object value)
        {
            // NOT WORKING with APPDATA
            var prop = new PropertyPointer();

            InitHeader <PropertyPointer>(ref prop.Header);
            var dataValue = IntPtr.Zero;

            prop.Data = new IntPtr(&dataValue);

            // Free previous application data if any
            Device.GetProperty(guid, new IntPtr(&prop));

            GCHandle handle;

            if (prop.Data.ToInt64() != -1)
            {
                handle = GCHandle.FromIntPtr(prop.Data);
                if (handle.IsAllocated)
                {
                    handle.Free();
                }
            }

            // Set new object value
            handle    = GCHandle.Alloc(value, GCHandleType.Pinned);
            prop.Data = handle.AddrOfPinnedObject();
            Device.SetProperty(guid, new IntPtr(&prop));
        }
Ejemplo n.º 2
0
        protected unsafe void Set(IntPtr guid, InputRange value)
        {
            var prop = new PropertyRange();

            InitHeader <PropertyRange>(ref prop.Header);
            value.CopyTo(ref prop);
            Device.SetProperty(guid, new IntPtr(&prop));
        }
Ejemplo n.º 3
0
        protected unsafe void Set(IntPtr guid, int value)
        {
            var prop = new PropertyInt();

            InitHeader <PropertyInt>(ref prop.Header);
            prop.Data = value;
            Device.SetProperty(guid, new IntPtr(&prop));
        }
Ejemplo n.º 4
0
        protected unsafe void Set(IntPtr guid, string value)
        {
            var prop = new PropertyString {
                Text = value
            };
            var propNative = new PropertyString.__Native();

            prop.__MarshalTo(ref propNative);
            InitHeader <PropertyString.__Native>(ref propNative.Header);
            Device.SetProperty(guid, new IntPtr(&propNative));
        }