PICTDESC
struct PICTDESC
Contains parameters to create a picture object through the OleCreatePictureIndirect function.
using System;
using System.CodeDom.Compiler;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using Windows.Win32.Foundation;
using Windows.Win32.Graphics.Gdi;
using Windows.Win32.Graphics.GdiPlus;
using Windows.Win32.UI.WindowsAndMessaging;
namespace Windows.Win32.System.Ole
{
[NullableContext(1)]
[Nullable(0)]
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")]
internal struct PICTDESC
{
[StructLayout(LayoutKind.Explicit)]
[NullableContext(0)]
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")]
internal struct _Anonymous_e__Union
{
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")]
internal struct _bmp_e__Struct
{
internal HBITMAP hbitmap;
internal HPALETTE hpal;
}
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")]
internal struct _wmf_e__Struct
{
internal HMETAFILE hmeta;
internal int xExt;
internal int yExt;
}
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")]
internal struct _icon_e__Struct
{
internal HICON hicon;
}
[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.106+a37a0b4b70")]
internal struct _emf_e__Struct
{
internal HENHMETAFILE hemf;
}
[FieldOffset(0)]
internal _bmp_e__Struct bmp;
[FieldOffset(0)]
internal _wmf_e__Struct wmf;
[FieldOffset(0)]
internal _icon_e__Struct icon;
[FieldOffset(0)]
internal _emf_e__Struct emf;
}
internal uint cbSizeofstruct;
private uint _picType;
internal _Anonymous_e__Union Anonymous;
internal PICTYPE picType {
get {
return (PICTYPE)_picType;
}
set {
_picType = (uint)value;
}
}
public static PICTDESC FromBitmap(IPointer<GpBitmap> bitmap, HPALETTE paletteHandle = default(HPALETTE))
{
PICTDESC pICTDESC = default(PICTDESC);
pICTDESC.picType = PICTYPE.PICTYPE_BITMAP;
PICTDESC result = pICTDESC;
result.Anonymous.bmp.hbitmap = bitmap.GetHBITMAP();
result.Anonymous.bmp.hpal = paletteHandle;
return result;
}
public static PICTDESC FromIcon(IIcon icon, bool copy)
{
PICTDESC pICTDESC = default(PICTDESC);
pICTDESC.picType = PICTYPE.PICTYPE_ICON;
PICTDESC result = pICTDESC;
Size size = icon.Size;
result.Anonymous.icon.hicon = (copy ? ((HICON)PInvokeCore.CopyImage(icon.Handle, GDI_IMAGE_TYPE.IMAGE_ICON, size.Width, size.Height, IMAGE_FLAGS.LR_DEFAULTCOLOR).Value) : icon.Handle);
GC.KeepAlive(icon);
return result;
}
public static PICTDESC FromMetafile(IPointer<GpMetafile> metafile)
{
PICTDESC pICTDESC = default(PICTDESC);
pICTDESC.picType = PICTYPE.PICTYPE_ENHMETAFILE;
PICTDESC result = pICTDESC;
result.Anonymous.emf.hemf = metafile.GetHENHMETAFILE();
return result;
}
public static PICTDESC FromImage(IImage image)
{
IPointer<GpBitmap> pointer = image as IPointer<GpBitmap>;
if (pointer != null)
return FromBitmap(pointer, default(HPALETTE));
IPointer<GpMetafile> pointer2 = image as IPointer<GpMetafile>;
if (pointer2 == null)
throw new InvalidOperationException();
return FromMetafile(pointer2);
}
}
}