/// <summary> /// Converts an inputshare clipboard data type into a windows dataobject /// </summary> /// <param name="data"></param> /// <returns></returns> public static InputshareDataObject ConvertToWindows(ClipboardDataBase data) { if (data is ClipboardVirtualFileData fd) { List <FileAttributes> files = fd.AllFiles; InputshareDataObject o = new InputshareDataObject(files); return(o); } else if (data is ClipboardImageData imgData) { try { using (MemoryStream ms = new MemoryStream(imgData.ImageData)) { Image bmp = Image.FromStream(ms); return(new InputshareDataObject(bmp)); } } catch (Exception ex) { ISLogger.Write("Error converting image data: " + ex.Message); return(null); } } else if (data is ClipboardTextData textData) { return(new InputshareDataObject(textData)); } throw new ArgumentException("Unrecognized data type " + data.GetType().FullName); }
public override void SetClipboardData(ClipboardDataBase data) { InputshareDataObject obj = null; try { obj = ClipboardTranslatorWindows.ConvertToWindows(data); } catch (Exception ex) { ISLogger.Write("Failed to convert clipboard data: " + ex.Message); } if (obj != null) { cbHookWindow.SetClipboardData(obj); } }