public byte[] UnwrapStructure(uint format) { //TODO: it is very sad that we invoke System.Drawing here to get the job done. probably not very optimal. var bitmapVersionFivePointer = ClipboardApi.GetClipboardData(ClipboardApi.CF_DIBV5); var bitmapVersionFiveHeader = (BITMAPV5HEADER)Marshal.PtrToStructure(bitmapVersionFivePointer, typeof(BITMAPV5HEADER)); if (bitmapVersionFiveHeader.bV5Compression == BI_RGB) { var bitmapVersionOneBytes = ClipboardApi.GetClipboardDataBytes(ClipboardApi.CF_DIB); var bitmapVersionOneHeader = GeneralApi.ByteArrayToStructure <BITMAPINFOHEADER>(bitmapVersionOneBytes); return(HandleBitmapVersionOne(bitmapVersionOneBytes, bitmapVersionOneHeader)); } else { return(HandleBitmapVersionFive(bitmapVersionFivePointer, bitmapVersionFiveHeader)); } }
public byte[] UnwrapStructure(uint format) { return(ClipboardApi.GetClipboardDataBytes(format)); }