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); }
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; } } }
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); }
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); } } } }
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; }
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); }