コード例 #1
0
        IClipboardDataControlPackage ConstructPackage(IEnumerable <uint> formats)
        {
            var package = new ClipboardDataControlPackage();

            DecoratePackageWithClipboardData(formats, package);
            userInterfaceThread.Invoke(() => DecoratePackageWithControl(package));

            return(package);
        }
        public IClipboardDataControlPackage CreateFromDataPackage(IClipboardDataPackage dataPackage)
        {
            ClipboardDataControlPackage package = null;

            mainThreadInvoker.Invoke(
                () => package = CreateDataControlPackageFromDataPackage(dataPackage));

            return(package);
        }
コード例 #3
0
 void DecoratePackageWithControl(ClipboardDataControlPackage package)
 {
     foreach (var data in package.Contents)
     {
         var dataFactory = dataFactories.FirstOrDefault(x => x.CanBuildControl(data));
         if (dataFactory != null)
         {
             package.Control = dataFactory.BuildControl(data);
             break;
         }
     }
 }
コード例 #4
0
 void DecoratePackageWithClipboardData(
     IEnumerable <uint> formats,
     ClipboardDataControlPackage package)
 {
     foreach (var format in formats)
     {
         var dataFactory = dataFactories.FirstOrDefault(x => x.CanBuildData(format));
         if (dataFactory != null)
         {
             DecoratePackageWithFormatDataUsingFactory(package, dataFactory, format);
         }
     }
 }
        ClipboardDataControlPackage CreateDataControlPackageFromDataPackage(IClipboardDataPackage dataPackage)
        {
            var control = CreateControlFromDataPackage(dataPackage);

            if (control == null)
            {
                return(null);
            }

            var package = new ClipboardDataControlPackage(dataPackage, control);

            return(package);
        }
コード例 #6
0
        void DecoratePackageWithFormatDataUsingFactory(
            ClipboardDataControlPackage package, IClipboardDataControlFactory factory, uint format)
        {
            var unwrapper = memoryUnwrappers.FirstOrDefault(x => x.CanUnwrap(format));

            if (unwrapper != null)
            {
                var rawData = unwrapper.UnwrapStructure(format);
                if (rawData != null)
                {
                    var clipboardData = factory.BuildData(format, rawData);
                    if (clipboardData != null)
                    {
                        package.AddData(clipboardData);
                    }
                }
            }
        }
コード例 #7
0
        public IClipboardDataControlPackage CreateFromCurrentClipboardData()
        {
            var dataPackage = dataPackageFactory.CreateFromCurrentClipboardData();
            if (dataPackage == null)
            {
                return null;
            }

            ClipboardDataControlPackage package = null;
            mainThreadInvoker.Invoke(
                () => {
                    var control = CreateControlFromDataPackage(dataPackage);
                    if (control == null)
                    {
                        return;
                    }

                    package = new ClipboardDataControlPackage(dataPackage, control);
                });

            return package;
        }
コード例 #8
0
        public IClipboardDataControlPackage CreateFromCurrentClipboardData()
        {
            var dataPackage = dataPackageFactory.CreateFromCurrentClipboardData();

            if (dataPackage == null)
            {
                return(null);
            }

            ClipboardDataControlPackage package = null;

            mainThreadInvoker.Invoke(
                () => {
                var control = CreateControlFromDataPackage(dataPackage);
                if (control == null)
                {
                    return;
                }

                package = new ClipboardDataControlPackage(dataPackage, control);
            });

            return(package);
        }