Developers
Developers
GDI Constants (GDI32)
/* Binary raster ops */
public const int R2_BLACK           = 1;/* 0 */
public const int R2_NOTMERGEPEN     = 2;/* DPon */
public const int R2_MASKNOTPEN      = 3;/* DPna */
public const int R2_NOTCOPYPEN      = 4;/* PN */
public const int R2_MASKPENNOT      = 5;/* PDna */
public const int R2_NOT             = 6;/* Dn */
public const int R2_XORPEN          = 7;/* DPx */
public const int R2_NOTMASKPEN      = 8;/* DPan */
public const int R2_MASKPEN         = 9;/* DPa */
public const int R2_NOTXORPEN       = 10;/* DPxn */
public const int R2_NOP             = 11;/* D */
public const int R2_MERGENOTPEN     = 12;/* DPno */
public const int R2_COPYPEN         = 13;/* P */
public const int R2_MERGEPENNOT     = 14;/* PDno */
public const int R2_MERGEPEN        = 15;/* DPo */
public const int R2_WHITE           = 16;/* 1 */
public const int R2_LAST            = 16;

/* Ternary raster operations */
public const int SRCCOPY            =(int)0x00CC0020;/* dest = source */
public const int SRCPAINT           =(int)0x00EE0086;/* dest = source OR dest */
public const int SRCAND             =(int)0x008800C6;/* dest = source AND dest */
public const int SRCINVERT          =(int)0x00660046;/* dest = source XOR dest */
public const int SRCERASE           =(int)0x00440328;/* dest = source AND (NOT dest ) */
public const int NOTSRCCOPY         =(int)0x00330008;/* dest = (NOT source) */
public const int NOTSRCERASE        =(int)0x001100A6;/* dest = (NOT src) AND (NOT dest) */
public const int MERGECOPY          =(int)0x00C000CA;/* dest = (source AND pattern) */
public const int MERGEPAINT         =(int)0x00BB0226;/* dest = (NOT source) OR dest */
public const int PATCOPY            =(int)0x00F00021;/* dest = pattern */
public const int PATPAINT           =(int)0x00FB0A09;/* dest = DPSnoo */
public const int PATINVERT          =(int)0x005A0049;/* dest = pattern XOR dest */
public const int DSTINVERT          =(int)0x00550009;/* dest = (NOT dest) */
public const int BLACKNESS          =(int)0x00000042;/* dest = BLACK */
public const int WHITENESS          =(int)0x00FF0062;/* dest = WHITE */

public const uint NOMIRRORBITMAP     = (uint)0x80000000;/* Do not Mirror the bitmap in this call */
public const int CAPTUREBLT         = (int)0x40000000;/* Include layered windows */

public const long GDI_ERROR= 0xFFFFFFFF;
public const long HGDI_ERROR= 0xFFFFFFFF;

/* Region Flags */
public const int ERROR              = 0;
public const int NULLREGION         = 1;
public const int SIMPLEREGION       = 2;
public const int COMPLEXREGION      = 3;

/* CombineRgn() Styles */
public const int RGN_AND           =  1;
public const int RGN_OR            =  2;
public const int RGN_XOR           =  3;
public const int RGN_DIFF          =  4;
public const int RGN_COPY          =  5;
public const int RGN_MIN           =  RGN_AND;
public const int RGN_MAX           =  RGN_COPY;

/* StretchBlt() Modes */
public const int BLACKONWHITE       = 1;
public const int WHITEONBLACK       = 2;
public const int COLORONCOLOR       = 3;
public const int HALFTONE           = 4;
public const int MAXSTRETCHBLTMODE= 4;

/* New StretchBlt() Modes */
public const int STRETCH_ANDSCANS    = BLACKONWHITE;
public const int STRETCH_ORSCANS     = WHITEONBLACK;
public const int STRETCH_DELETESCANS = COLORONCOLOR;
public const int STRETCH_HALFTONE    = HALFTONE;

/* PolyFill() Modes */
public const int ALTERNATE           = 1;
public const int WINDING             = 2;
public const int POLYFILL_LAST       = 2;

/* Layout Orientation Options */
public const int LAYOUT_RTL                         = 0x00000001;// Right to left
public const int LAYOUT_BTT                         = 0x00000002;// Bottom to top
public const int LAYOUT_VBH                         = 0x00000004;// Vertical before horizontal
public const int LAYOUT_ORIENTATIONMASK             = (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH);
public const int LAYOUT_BITMAPORIENTATIONPRESERVED  = 0x00000008;

/* Text Alignment Options */
public const int TA_NOUPDATECP              = 0;
public const int TA_UPDATECP                = 1;

public const int TA_LEFT                    = 0;
public const int TA_RIGHT                   = 2;
public const int TA_CENTER                  = 6;

public const int TA_TOP                     = 0;
public const int TA_BOTTOM                  = 8;
public const int TA_BASELINE                = 24;

public const int TA_RTLREADING              = 256;
public const int TA_MASK=( TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING);

public const int VTA_BASELINE= TA_BASELINE;
public const int VTA_LEFT= TA_BOTTOM;
public const int VTA_RIGHT= TA_TOP;
public const int VTA_CENTER= TA_CENTER;
public const int VTA_BOTTOM     = TA_RIGHT;
public const int VTA_TOP        = TA_LEFT;

public const int ETO_OPAQUE                   =0x0002;
public const int ETO_CLIPPED                  =0x0004;

public const int ETO_GLYPH_INDEX              =0x0010;
public const int ETO_RTLREADING               =0x0080;
public const int ETO_NUMERICSLOCAL            =0x0400;
public const int ETO_NUMERICSLATIN            =0x0800;
public const int ETO_IGNORELANGUAGE           =0x1000;
public const int ETO_PDY                      =0x2000;

public const int ASPECT_FILTERING             =0x0001;

/* Bounds Accumulation APIs */
public const int DCB_RESET       =0x0001;
public const int DCB_ACCUMULATE  =0x0002;
public const int DCB_DIRTY       =DCB_ACCUMULATE;
public const int DCB_SET         =(DCB_RESET | DCB_ACCUMULATE);
public const int DCB_ENABLE      =0x0004;
public const int DCB_DISABLE     =0x0008;


/* Metafile Functions */
public const int META_SETBKCOLOR             = 0x0201;
public const int META_SETBKMODE              = 0x0102;
public const int META_SETMAPMODE             = 0x0103;
public const int META_SETROP2                = 0x0104;
public const int META_SETRELABS              = 0x0105;
public const int META_SETPOLYFILLMODE        = 0x0106;
public const int META_SETSTRETCHBLTMODE      = 0x0107;
public const int META_SETTEXTCHAREXTRA       = 0x0108;
public const int META_SETTEXTCOLOR           = 0x0209;
public const int META_SETTEXTJUSTIFICATION   = 0x020A;
public const int META_SETWINDOWORG           = 0x020B;
public const int META_SETWINDOWEXT           = 0x020C;
public const int META_SETVIEWPORTORG         = 0x020D;
public const int META_SETVIEWPORTEXT         = 0x020E;
public const int META_OFFSETWINDOWORG        = 0x020F;
public const int META_SCALEWINDOWEXT         = 0x0410;
public const int META_OFFSETVIEWPORTORG      = 0x0211;
public const int META_SCALEVIEWPORTEXT       = 0x0412;
public const int META_LINETO                 = 0x0213;
public const int META_MOVETO                 = 0x0214;
public const int META_EXCLUDECLIPRECT        = 0x0415;
public const int META_INTERSECTCLIPRECT      = 0x0416;
public const int META_ARC                    = 0x0817;
public const int META_ELLIPSE                = 0x0418;
public const int META_FLOODFILL              = 0x0419;
public const int META_PIE                    = 0x081A;
public const int META_RECTANGLE              = 0x041B;
public const int META_ROUNDRECT              = 0x061C;
public const int META_PATBLT                 = 0x061D;
public const int META_SAVEDC                 = 0x001E;
public const int META_SETPIXEL               = 0x041F;
public const int META_OFFSETCLIPRGN          = 0x0220;
public const int META_TEXTOUT                = 0x0521;
public const int META_BITBLT                 = 0x0922;
public const int META_STRETCHBLT             = 0x0B23;
public const int META_POLYGON                = 0x0324;
public const int META_POLYLINE               = 0x0325;
public const int META_ESCAPE                 = 0x0626;
public const int META_RESTOREDC              = 0x0127;
public const int META_FILLREGION             = 0x0228;
public const int META_FRAMEREGION            = 0x0429;
public const int META_INVERTREGION           = 0x012A;
public const int META_PAINTREGION            = 0x012B;
public const int META_SELECTCLIPREGION       = 0x012C;
public const int META_SELECTOBJECT           = 0x012D;
public const int META_SETTEXTALIGN           = 0x012E;
public const int META_CHORD                  = 0x0830;
public const int META_SETMAPPERFLAGS         = 0x0231;
public const int META_EXTTEXTOUT             = 0x0a32;
public const int META_SETDIBTODEV            = 0x0d33;
public const int META_SELECTPALETTE          = 0x0234;
public const int META_REALIZEPALETTE         = 0x0035;
public const int META_ANIMATEPALETTE         = 0x0436;
public const int META_SETPALENTRIES          = 0x0037;
public const int META_POLYPOLYGON            = 0x0538;
public const int META_RESIZEPALETTE          = 0x0139;
public const int META_DIBBITBLT              = 0x0940;
public const int META_DIBSTRETCHBLT          = 0x0b41;
public const int META_DIBCREATEPATTERNBRUSH  = 0x0142;
public const int META_STRETCHDIB             = 0x0f43;
public const int META_EXTFLOODFILL           = 0x0548;

public const int META_SETLAYOUT              = 0x0149;

public const int META_DELETEOBJECT           = 0x01f0;
public const int META_CREATEPALETTE          = 0x00f7;
public const int META_CREATEPATTERNBRUSH     = 0x01F9;
public const int META_CREATEPENINDIRECT      = 0x02FA;
public const int META_CREATEFONTINDIRECT     = 0x02FB;
public const int META_CREATEBRUSHINDIRECT    = 0x02FC;
public const int META_CREATEREGION           = 0x06FF;

/* GDI Escapes */
public const int NEWFRAME                     =1;
public const int ABORTDOC                     =2;
public const int NEXTBAND                     =3;
public const int SETCOLORTABLE                =4;
public const int GETCOLORTABLE                =5;
public const int FLUSHOUTPUT                  =6;
public const int DRAFTMODE                    =7;
public const int QUERYESCSUPPORT              =8;
public const int SETABORTPROC                 =9;
public const int STARTDOC                     =10;
public const int ENDDOC                       =11;
public const int GETPHYSPAGESIZE              =12;
public const int GETPRINTINGOFFSET            =13;
public const int GETSCALINGFACTOR             =14;
public const int MFCOMMENT                    =15;
public const int GETPENWIDTH                  =16;
public const int SETCOPYCOUNT                 =17;
public const int SELECTPAPERSOURCE            =18;
public const int DEVICEDATA                   =19;
public const int PASSTHROUGH                  =19;
public const int GETTECHNOLGY                 =20;
public const int GETTECHNOLOGY                =20;
public const int SETLINECAP                   =21;
public const int SETLINEJOIN                  =22;
public const int SETMITERLIMIT                =23;
public const int BANDINFO                     =24;
public const int DRAWPATTERNRECT              =25;
public const int GETVECTORPENSIZE             =26;
public const int GETVECTORBRUSHSIZE           =27;
public const int ENABLEDUPLEX                 =28;
public const int GETSETPAPERBINS              =29;
public const int GETSETPRINTORIENT            =30;
public const int ENUMPAPERBINS                =31;
public const int SETDIBSCALING                =32;
public const int EPSPRINTING                  =33;
public const int ENUMPAPERMETRICS             =34;
public const int GETSETPAPERMETRICS           =35;
public const int POSTSCRIPT_DATA              =37;
public const int POSTSCRIPT_IGNORE            =38;
public const int MOUSETRAILS                  =39;
public const int GETDEVICEUNITS               =42;

public const int GETEXTENDEDTEXTMETRICS       =256;
public const int GETEXTENTTABLE               =257;
public const int GETPAIRKERNTABLE             =258;
public const int GETTRACKKERNTABLE            =259;
public const int EXTTEXTOUT                   =512;
public const int GETFACENAME                  =513;
public const int DOWNLOADFACE                 =514;
public const int ENABLERELATIVEWIDTHS         =768;
public const int ENABLEPAIRKERNING            =769;
public const int SETKERNTRACK                 =770;
public const int SETALLJUSTVALUES             =771;
public const int SETCHARSET                   =772;

public const int STRETCHBLT                   =2048;
public const int METAFILE_DRIVER              =2049;
public const int GETSETSCREENPARAMS           =3072;
public const int QUERYDIBSUPPORT              =3073;
public const int BEGIN_PATH                   =4096;
public const int CLIP_TO_PATH                 =4097;
public const int END_PATH                     =4098;
public const int EXT_DEVICE_CAPS              =4099;
public const int RESTORE_CTM                  =4100;
public const int SAVE_CTM                     =4101;
public const int SET_ARC_DIRECTION            =4102;
public const int SET_BACKGROUND_COLOR         =4103;
public const int SET_POLY_MODE                =4104;
public const int SET_SCREEN_ANGLE             =4105;
public const int SET_SPREAD                   =4106;
public const int TRANSFORM_CTM                =4107;
public const int SET_CLIP_BOX                 =4108;
public const int SET_BOUNDS                   =4109;
public const int SET_MIRROR_MODE              =4110;
public const int OPENCHANNEL                  =4110;
public const int DOWNLOADHEADER               =4111;
public const int CLOSECHANNEL                 =4112;
public const int POSTSCRIPT_PASSTHROUGH       =4115;
public const int ENCAPSULATED_POSTSCRIPT      =4116;

public const int POSTSCRIPT_IDENTIFY          =4117;/* new escape for NT5 pscript driver */
public const int POSTSCRIPT_INJECTION         =4118;/* new escape for NT5 pscript driver */

public const int CHECKJPEGFORMAT              =4119;
public const int CHECKPNGFORMAT               =4120;

public const int GET_PS_FEATURESETTING        =4121;/* new escape for NT5 pscript driver */

public const int SPCLPASSTHROUGH2             =4568;/* new escape for NT5 pscript driver */

/*
* Parameters for POSTSCRIPT_IDENTIFY escape
*/
public const int PSIDENT_GDICENTRIC    =0;
public const int PSIDENT_PSCENTRIC     =1;

/*
* Constants for PSINJECTDATA.InjectionPoint field
*/
public const int PSINJECT_BEGINSTREAM                =1;
public const int PSINJECT_PSADOBE                    =2;
public const int PSINJECT_PAGESATEND                 =3;
public const int PSINJECT_PAGES                      =4;

public const int PSINJECT_DOCNEEDEDRES               =5;
public const int PSINJECT_DOCSUPPLIEDRES             =6;
public const int PSINJECT_PAGEORDER                  =7;
public const int PSINJECT_ORIENTATION                =8;
public const int PSINJECT_BOUNDINGBOX                =9;
public const int PSINJECT_DOCUMENTPROCESSCOLORS      =10;

public const int PSINJECT_COMMENTS                   =11;
public const int PSINJECT_BEGINDEFAULTS              =12;
public const int PSINJECT_ENDDEFAULTS                =13;
public const int PSINJECT_BEGINPROLOG                =14;
public const int PSINJECT_ENDPROLOG                  =15;
public const int PSINJECT_BEGINSETUP                 =16;
public const int PSINJECT_ENDSETUP                   =17;
public const int PSINJECT_TRAILER                    =18;
public const int PSINJECT_EOF                        =19;
public const int PSINJECT_ENDSTREAM                  =20;
public const int PSINJECT_DOCUMENTPROCESSCOLORSATEND =21;

public const int PSINJECT_PAGENUMBER                 =100;
public const int PSINJECT_BEGINPAGESETUP             =101;
public const int PSINJECT_ENDPAGESETUP               =102;
public const int PSINJECT_PAGETRAILER                =103;
public const int PSINJECT_PLATECOLOR                 =104;

public const int PSINJECT_SHOWPAGE                   =105;
public const int PSINJECT_PAGEBBOX                   =106;
public const int PSINJECT_ENDPAGECOMMENTS            =107;

public const int PSINJECT_VMSAVE                     =200;
public const int PSINJECT_VMRESTORE                  =201;

/*
* Parameter for GET_PS_FEATURESETTING escape
*/

public const int FEATURESETTING_NUP                 = 0;
public const int FEATURESETTING_OUTPUT              = 1;
public const int FEATURESETTING_PSLEVEL             = 2;
public const int FEATURESETTING_CUSTPAPER           = 3;
public const int FEATURESETTING_MIRROR              = 4;
public const int FEATURESETTING_NEGATIVE            = 5;
public const int FEATURESETTING_PROTOCOL            = 6;

//
// The range of selectors between FEATURESETTING_PRIVATE_BEGIN and
// FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use
//
public const int FEATURESETTING_PRIVATE_BEGIN =0x1000;
public const int FEATURESETTING_PRIVATE_END   =0x1FFF;

/* Value returned for FEATURESETTING_PROTOCOL */
public const int PSPROTOCOL_ASCII            = 0;
public const int PSPROTOCOL_BCP              = 1;
public const int PSPROTOCOL_TBCP             = 2;
public const int PSPROTOCOL_BINARY           = 3;

/* Flag returned from QUERYDIBSUPPORT */
public const int QDI_SETDIBITS               = 1;
public const int QDI_GETDIBITS               = 2;
public const int QDI_DIBTOSCREEN             = 4;
public const int QDI_STRETCHDIB              = 8;

/* Spooler Error Codes */
public const int SP_NOTREPORTED              = 0x4000;
public const int SP_ERROR                    = (-1);
public const int SP_APPABORT                 = (-2);
public const int SP_USERABORT                = (-3);
public const int SP_OUTOFDISK                = (-4);
public const int SP_OUTOFMEMORY              = (-5);

public const int PR_JOBSTATUS                 =0x0000;

/* Object Definitions for EnumObjects() */
public const int OBJ_PEN            = 1;
public const int OBJ_BRUSH          = 2;
public const int OBJ_DC             = 3;
public const int OBJ_METADC         = 4;
public const int OBJ_PAL            = 5;
public const int OBJ_FONT           = 6;
public const int OBJ_BITMAP         = 7;
public const int OBJ_REGION         = 8;
public const int OBJ_METAFILE       = 9;
public const int OBJ_MEMDC          = 10;
public const int OBJ_EXTPEN         = 11;
public const int OBJ_ENHMETADC      = 12;
public const int OBJ_ENHMETAFILE    = 13;
public const int OBJ_COLORSPACE     = 14;

/* xform stuff */
public const int MWT_IDENTITY        =1;
public const int MWT_LEFTMULTIPLY    =2;
public const int MWT_RIGHTMULTIPLY   =3;

public const int MWT_MIN             =MWT_IDENTITY;
public const int MWT_MAX             =MWT_RIGHTMULTIPLY;

/* Image Color Matching color definitions */

public const int CS_ENABLE                       =0x00000001;
public const int CS_DISABLE                      =0x00000002;
public const int CS_DELETE_TRANSFORM             =0x00000003;

/* Logcolorspace signature */

public const string LCS_SIGNATURE          = "PSOC";

/* Logcolorspace lcsType values */

public const string LCS_sRGB                ="sRGB";
public const string LCS_WINDOWS_COLOR_SPACE ="Win ";// Windows default color space

public const int LCS_CALIBRATED_RGB            = 0x00000000;

public const int LCS_GM_BUSINESS               = 0x00000001;
public const int LCS_GM_GRAPHICS               = 0x00000002;
public const int LCS_GM_IMAGES                 = 0x00000004;
public const int LCS_GM_ABS_COLORIMETRIC       = 0x00000008;

/* ICM Defines for results from CheckColorInGamut() */
public const int CM_OUT_OF_GAMUT                = 255;
public const int CM_IN_GAMUT                    = 0;

/* UpdateICMRegKey Constants */
public const int ICM_ADDPROFILE                 = 1;
public const int ICM_DELETEPROFILE              = 2;
public const int ICM_QUERYPROFILE               = 3;
public const int ICM_SETDEFAULTPROFILE          = 4;
public const int ICM_REGISTERICMATCHER          = 5;
public const int ICM_UNREGISTERICMATCHER        = 6;
public const int ICM_QUERYMATCH                 = 7;

// Values for bV5CSType
public const string PROFILE_LINKED         = "LINK";
public const string PROFILE_EMBEDDED       = "MBED";

/* constants for the biCompression field */
public const int BI_RGB        =0;
public const int BI_RLE8       =1;
public const int BI_RLE4       =2;
public const int BI_BITFIELDS  =3;
public const int BI_JPEG       =4;
public const int BI_PNG        =5;

public const int TCI_SRCCHARSET  =1;
public const int TCI_SRCCODEPAGE =2;
public const int TCI_SRCFONTSIG  =3;
public const int TCI_SRCLOCALE   =0x1000;


public const int TMPF_FIXED_PITCH= 0x01;
public const int TMPF_VECTOR            = 0x02;
public const int TMPF_DEVICE            = 0x08;
public const int TMPF_TRUETYPE= 0x04;
/* ntmFlags field flags */
public const int NTM_REGULAR    = 0x00000040;
public const int NTM_BOLD       = 0x00000020;
public const int NTM_ITALIC     = 0x00000001;

/* new in NT 5.0 */

public const int NTM_NONNEGATIVE_AC  =0x00010000;
public const int NTM_PS_OPENTYPE     =0x00020000;
public const int NTM_TT_OPENTYPE     =0x00040000;
public const int NTM_MULTIPLEMASTER  =0x00080000;
public const int NTM_TYPE1           =0x00100000;
public const int NTM_DSIG            =0x00200000;

public const int LF_FACESIZE        = 32;



public const int LF_FULLFACESIZE     =64;

public const int OUT_DEFAULT_PRECIS          =0;
public const int OUT_STRING_PRECIS           =1;
public const int OUT_CHARACTER_PRECIS        =2;
public const int OUT_STROKE_PRECIS           =3;
public const int OUT_TT_PRECIS               =4;
public const int OUT_DEVICE_PRECIS           =5;
public const int OUT_RASTER_PRECIS           =6;
public const int OUT_TT_ONLY_PRECIS          =7;
public const int OUT_OUTLINE_PRECIS          =8;
public const int OUT_SCREEN_OUTLINE_PRECIS   =9;
public const int OUT_PS_ONLY_PRECIS          =10;

public const int CLIP_DEFAULT_PRECIS     =0;
public const int CLIP_CHARACTER_PRECIS   =1;
public const int CLIP_STROKE_PRECIS      =2;
public const int CLIP_MASK               =0xf;
public const int CLIP_LH_ANGLES          =(1<<4);
public const int CLIP_TT_ALWAYS          =(2<<4);
public const int CLIP_EMBEDDED           =(8<<4);

public const int DEFAULT_QUALITY         =0;
public const int DRAFT_QUALITY           =1;
public const int PROOF_QUALITY           =2;
public const int NONANTIALIASED_QUALITY  =3;
public const int ANTIALIASED_QUALITY     =4;
public const int CLEARTYPE_QUALITY       =5;
public const int CLEARTYPE_NATURAL_QUALITY       =6;

public const int DEFAULT_PITCH           =0;
public const int FIXED_PITCH             =1;
public const int VARIABLE_PITCH          =2;
public const int MONO_FONT               =8;

public const int ANSI_CHARSET           = 0;
public const int DEFAULT_CHARSET        = 1;
public const int SYMBOL_CHARSET         = 2;
public const int SHIFTJIS_CHARSET       = 128;
public const int HANGEUL_CHARSET        = 129;
public const int HANGUL_CHARSET         = 129;
public const int GB2312_CHARSET         = 134;
public const int CHINESEBIG5_CHARSET    = 136;
public const int OEM_CHARSET            = 255;
public const int JOHAB_CHARSET          = 130;
public const int HEBREW_CHARSET         = 177;
public const int ARABIC_CHARSET         = 178;
public const int GREEK_CHARSET          = 161;
public const int TURKISH_CHARSET        = 162;
public const int VIETNAMESE_CHARSET     = 163;
public const int THAI_CHARSET           = 222;
public const int EASTEUROPE_CHARSET     = 238;
public const int RUSSIAN_CHARSET        = 204;

public const int MAC_CHARSET            = 77;
public const int BALTIC_CHARSET         = 186;

public const uint FS_LATIN1              = 0x00000001;
public const uint FS_LATIN2              = 0x00000002;
public const uint FS_CYRILLIC            = 0x00000004;
public const uint FS_GREEK               = 0x00000008;
public const uint FS_TURKISH             = 0x00000010;
public const uint FS_HEBREW              = 0x00000020;
public const uint FS_ARABIC              = 0x00000040;
public const uint FS_BALTIC              = 0x00000080;
public const uint FS_VIETNAMESE          = 0x00000100;
public const uint FS_THAI                = 0x00010000;
public const uint FS_JISJAPAN            = 0x00020000;
public const uint FS_CHINESESIMP         = 0x00040000;
public const uint FS_WANSUNG             = 0x00080000;
public const uint FS_CHINESETRAD         = 0x00100000;
public const uint FS_JOHAB               = 0x00200000;
public const uint FS_SYMBOL              = 0x80000000;
/* Font Families */
public const int FF_DONTCARE         =(0<<4);/* Don't care or don't know. */
public const int FF_ROMAN            =(1<<4);/* Variable stroke width, serifed. */
/* Times Roman, Century Schoolbook, etc. */
public const int FF_SWISS           = (2<<4);/* Variable stroke width, sans-serifed. */
/* Helvetica, Swiss, etc. */
public const int FF_MODERN           =(3<<4);/* Constant stroke width, serifed or sans-serifed. */
/* Pica, Elite, Courier, etc. */
public const int FF_SCRIPT          = (4<<4);/* Cursive, etc. */
public const int FF_DECORATIVE      = (5<<4);/* Old English, etc. */

/* Font Weights */
public const int FW_DONTCARE        = 0;
public const int FW_THIN            = 100;
public const int FW_EXTRALIGHT      = 200;
public const int FW_LIGHT           = 300;
public const int FW_NORMAL          = 400;
public const int FW_MEDIUM          = 500;
public const int FW_SEMIBOLD        = 600;
public const int FW_BOLD            = 700;
public const int FW_EXTRABOLD       = 800;
public const int FW_HEAVY           = 900;

public const int FW_ULTRALIGHT      = FW_EXTRALIGHT;
public const int FW_REGULAR         = FW_NORMAL;
public const int FW_DEMIBOLD        = FW_SEMIBOLD;
public const int FW_ULTRABOLD       = FW_EXTRABOLD;
public const int FW_BLACK           = FW_HEAVY;

public const int PANOSE_COUNT              = 10;
public const int PAN_FAMILYTYPE_INDEX       = 0;
public const int PAN_SERIFSTYLE_INDEX       = 1;
public const int PAN_WEIGHT_INDEX           = 2;
public const int PAN_PROPORTION_INDEX       = 3;
public const int PAN_CONTRAST_INDEX         = 4;
public const int PAN_STROKEVARIATION_INDEX  = 5;
public const int PAN_ARMSTYLE_INDEX         = 6;
public const int PAN_LETTERFORM_INDEX       = 7;
public const int PAN_MIDLINE_INDEX          = 8;
public const int PAN_XHEIGHT_INDEX          = 9;

public const int PAN_CULTURE_LATIN           = 0;


public const int PAN_ANY                        = 0;/* Any */
public const int PAN_NO_FIT                     = 1;/* No Fit */

public const int PAN_FAMILY_TEXT_DISPLAY        = 2;/* Text and Display */
public const int PAN_FAMILY_SCRIPT              = 3;/* Script */
public const int PAN_FAMILY_DECORATIVE          = 4;/* Decorative */
public const int PAN_FAMILY_PICTORIAL           = 5;/* Pictorial */

public const int PAN_SERIF_COVE                 = 2;/* Cove */
public const int PAN_SERIF_OBTUSE_COVE          = 3;/* Obtuse Cove */
public const int PAN_SERIF_SQUARE_COVE          = 4;/* Square Cove */
public const int PAN_SERIF_OBTUSE_SQUARE_COVE   = 5;/* Obtuse Square Cove */
public const int PAN_SERIF_SQUARE               = 6;/* Square */
public const int PAN_SERIF_THIN                 = 7;/* Thin */
public const int PAN_SERIF_BONE                 = 8;/* Bone */
public const int PAN_SERIF_EXAGGERATED          = 9;/* Exaggerated */
public const int PAN_SERIF_TRIANGLE            = 10;/* Triangle */
public const int PAN_SERIF_NORMAL_SANS         = 11;/* Normal Sans */
public const int PAN_SERIF_OBTUSE_SANS         = 12;/* Obtuse Sans */
public const int PAN_SERIF_PERP_SANS           = 13;/* Prep Sans */
public const int PAN_SERIF_FLARED              = 14;/* Flared */
public const int PAN_SERIF_ROUNDED             = 15;/* Rounded */

public const int PAN_WEIGHT_VERY_LIGHT          = 2;/* Very Light */
public const int PAN_WEIGHT_LIGHT               = 3;/* Light */
public const int PAN_WEIGHT_THIN                = 4;/* Thin */
public const int PAN_WEIGHT_BOOK                = 5;/* Book */
public const int PAN_WEIGHT_MEDIUM              = 6;/* Medium */
public const int PAN_WEIGHT_DEMI                = 7;/* Demi */
public const int PAN_WEIGHT_BOLD                = 8;/* Bold */
public const int PAN_WEIGHT_HEAVY               = 9;/* Heavy */
public const int PAN_WEIGHT_BLACK              = 10;/* Black */
public const int PAN_WEIGHT_NORD               = 11;/* Nord */

public const int PAN_PROP_OLD_STYLE             = 2;/* Old Style */
public const int PAN_PROP_MODERN                = 3;/* Modern */
public const int PAN_PROP_EVEN_WIDTH            = 4;/* Even Width */
public const int PAN_PROP_EXPANDED              = 5;/* Expanded */
public const int PAN_PROP_CONDENSED             = 6;/* Condensed */
public const int PAN_PROP_VERY_EXPANDED         = 7;/* Very Expanded */
public const int PAN_PROP_VERY_CONDENSED        = 8;/* Very Condensed */
public const int PAN_PROP_MONOSPACED            = 9;/* Monospaced */

public const int PAN_CONTRAST_NONE              = 2;/* None */
public const int PAN_CONTRAST_VERY_LOW          = 3;/* Very Low */
public const int PAN_CONTRAST_LOW               = 4;/* Low */
public const int PAN_CONTRAST_MEDIUM_LOW        = 5;/* Medium Low */
public const int PAN_CONTRAST_MEDIUM            = 6;/* Medium */
public const int PAN_CONTRAST_MEDIUM_HIGH       = 7;/* Mediim High */
public const int PAN_CONTRAST_HIGH              = 8;/* High */
public const int PAN_CONTRAST_VERY_HIGH         = 9;/* Very High */

public const int PAN_STROKE_GRADUAL_DIAG        = 2;/* Gradual/Diagonal */
public const int PAN_STROKE_GRADUAL_TRAN        = 3;/* Gradual/Transitional */
public const int PAN_STROKE_GRADUAL_VERT        = 4;/* Gradual/Vertical */
public const int PAN_STROKE_GRADUAL_HORZ        = 5;/* Gradual/Horizontal */
public const int PAN_STROKE_RAPID_VERT          = 6;/* Rapid/Vertical */
public const int PAN_STROKE_RAPID_HORZ          = 7;/* Rapid/Horizontal */
public const int PAN_STROKE_INSTANT_VERT        = 8;/* Instant/Vertical */

public const int PAN_STRAIGHT_ARMS_HORZ         = 2;/* Straight Arms/Horizontal */
public const int PAN_STRAIGHT_ARMS_WEDGE        = 3;/* Straight Arms/Wedge */
public const int PAN_STRAIGHT_ARMS_VERT         = 4;/* Straight Arms/Vertical */
public const int PAN_STRAIGHT_ARMS_SINGLE_SERIF = 5;/* Straight Arms/Single-Serif */
public const int PAN_STRAIGHT_ARMS_DOUBLE_SERIF = 6;/* Straight Arms/Double-Serif */
public const int PAN_BENT_ARMS_HORZ             = 7;/* Non-Straight Arms/Horizontal */
public const int PAN_BENT_ARMS_WEDGE            = 8;/* Non-Straight Arms/Wedge */
public const int PAN_BENT_ARMS_VERT             = 9;/* Non-Straight Arms/Vertical */
public const int PAN_BENT_ARMS_SINGLE_SERIF     =10;/* Non-Straight Arms/Single-Serif */
public const int PAN_BENT_ARMS_DOUBLE_SERIF     =11;/* Non-Straight Arms/Double-Serif */

public const int PAN_LETT_NORMAL_CONTACT        = 2;/* Normal/Contact */
public const int PAN_LETT_NORMAL_WEIGHTED       = 3;/* Normal/Weighted */
public const int PAN_LETT_NORMAL_BOXED          = 4;/* Normal/Boxed */
public const int PAN_LETT_NORMAL_FLATTENED      = 5;/* Normal/Flattened */
public const int PAN_LETT_NORMAL_ROUNDED        = 6;/* Normal/Rounded */
public const int PAN_LETT_NORMAL_OFF_CENTER     = 7;/* Normal/Off Center */
public const int PAN_LETT_NORMAL_SQUARE         = 8;/* Normal/Square */
public const int PAN_LETT_OBLIQUE_CONTACT       = 9;/* Oblique/Contact */
public const int PAN_LETT_OBLIQUE_WEIGHTED      =10;/* Oblique/Weighted */
public const int PAN_LETT_OBLIQUE_BOXED         =11;/* Oblique/Boxed */
public const int PAN_LETT_OBLIQUE_FLATTENED     =12;/* Oblique/Flattened */
public const int PAN_LETT_OBLIQUE_ROUNDED       =13;/* Oblique/Rounded */
public const int PAN_LETT_OBLIQUE_OFF_CENTER    =14;/* Oblique/Off Center */
public const int PAN_LETT_OBLIQUE_SQUARE        =15;/* Oblique/Square */

public const int PAN_MIDLINE_STANDARD_TRIMMED   = 2;/* Standard/Trimmed */
public const int PAN_MIDLINE_STANDARD_POINTED   = 3;/* Standard/Pointed */
public const int PAN_MIDLINE_STANDARD_SERIFED   = 4;/* Standard/Serifed */
public const int PAN_MIDLINE_HIGH_TRIMMED       = 5;/* High/Trimmed */
public const int PAN_MIDLINE_HIGH_POINTED       = 6;/* High/Pointed */
public const int PAN_MIDLINE_HIGH_SERIFED       = 7;/* High/Serifed */
public const int PAN_MIDLINE_CONSTANT_TRIMMED   = 8;/* Constant/Trimmed */
public const int PAN_MIDLINE_CONSTANT_POINTED   = 9;/* Constant/Pointed */
public const int PAN_MIDLINE_CONSTANT_SERIFED   =10;/* Constant/Serifed */
public const int PAN_MIDLINE_LOW_TRIMMED        =11;/* Low/Trimmed */
public const int PAN_MIDLINE_LOW_POINTED        =12;/* Low/Pointed */
public const int PAN_MIDLINE_LOW_SERIFED        =13;/* Low/Serifed */

public const int PAN_XHEIGHT_CONSTANT_SMALL     = 2;/* Constant/Small */
public const int PAN_XHEIGHT_CONSTANT_STD       = 3;/* Constant/Standard */
public const int PAN_XHEIGHT_CONSTANT_LARGE     = 4;/* Constant/Large */
public const int PAN_XHEIGHT_DUCKING_SMALL      = 5;/* Ducking/Small */
public const int PAN_XHEIGHT_DUCKING_STD        = 6;/* Ducking/Standard */
public const int PAN_XHEIGHT_DUCKING_LARGE      = 7;/* Ducking/Large */


public const int ELF_VENDOR_SIZE     =4;
public const int ELF_VERSION         =0;
public const int ELF_CULTURE_LATIN   =0;

/* EnumFonts Masks */
public const int RASTER_FONTTYPE     =0x0001;
public const int DEVICE_FONTTYPE     =0x002;
public const int TRUETYPE_FONTTYPE   =0x004;


public const int PC_RESERVED     =0x01;/* palette index used for animation */
public const int PC_EXPLICIT     =0x02;/* palette index is explicit to device */
public const int PC_NOCOLLAPSE   =0x04;/* do not match color to system palette */

public const int TRANSPARENT        = 1;
public const int OPAQUE             = 2;
public const int BKMODE_LAST        = 2;

/* Graphics Modes */

public const int GM_COMPATIBLE      = 1;
public const int GM_ADVANCED        = 2;
public const int GM_LAST            = 2;

/* PolyDraw and GetPath point types */
public const int PT_CLOSEFIGURE     = 0x01;
public const int PT_LINETO          = 0x02;
public const int PT_BEZIERTO        = 0x04;
public const int PT_MOVETO          = 0x06;

/* Mapping Modes */
public const int MM_TEXT            = 1;
public const int MM_LOMETRIC        = 2;
public const int MM_HIMETRIC        = 3;
public const int MM_LOENGLISH       = 4;
public const int MM_HIENGLISH       = 5;
public const int MM_TWIPS           = 6;
public const int MM_ISOTROPIC       = 7;
public const int MM_ANISOTROPIC     = 8;

/* Min and Max Mapping Mode values */
public const int MM_MIN             = MM_TEXT;
public const int MM_MAX             = MM_ANISOTROPIC;
public const int MM_MAX_FIXEDSCALE  = MM_TWIPS;

/* Coordinate Modes */
public const int ABSOLUTE           = 1;
public const int RELATIVE           = 2;

/* Stock Logical Objects */
public const int WHITE_BRUSH        = 0;
public const int LTGRAY_BRUSH       = 1;
public const int GRAY_BRUSH         = 2;
public const int DKGRAY_BRUSH       = 3;
public const int BLACK_BRUSH        = 4;
public const int NULL_BRUSH         = 5;
public const int HOLLOW_BRUSH       = NULL_BRUSH;
public const int WHITE_PEN          = 6;
public const int BLACK_PEN          = 7;
public const int NULL_PEN           = 8;
public const int OEM_FIXED_FONT     = 10;
public const int ANSI_FIXED_FONT    = 11;
public const int ANSI_VAR_FONT      = 12;
public const int SYSTEM_FONT        = 13;
public const int DEVICE_DEFAULT_FONT= 14;
public const int DEFAULT_PALETTE    = 15;
public const int SYSTEM_FIXED_FONT  = 16;


public const int DEFAULT_GUI_FONT   = 17;


public const int DC_BRUSH           = 18;
public const int DC_PEN             = 19;


public const int STOCK_LAST         = 19;

public const uint CLR_INVALID     =0xFFFFFFFF;

/* Brush Styles */
public const int BS_SOLID           = 0;
public const int BS_NULL            = 1;
public const int BS_HOLLOW          = BS_NULL;
public const int BS_HATCHED         = 2;
public const int BS_PATTERN         = 3;
public const int BS_INDEXED         = 4;
public const int BS_DIBPATTERN      = 5;
public const int BS_DIBPATTERNPT    = 6;
public const int BS_PATTERN8X8      = 7;
public const int BS_DIBPATTERN8X8   = 8;
public const int BS_MONOPATTERN     = 9;

/* Hatch Styles */
public const int HS_HORIZONTAL      = 0;/* ----- */
public const int HS_VERTICAL        = 1;/* ||||| */
public const int HS_FDIAGONAL       = 2;/* \\\\\ */
/// public const int HS_BDIAGONAL       = 3;       /* // */
public const int HS_CROSS           = 4;/* +++++ */
public const int HS_DIAGCROSS       = 5;/* xxxxx */

/* Pen Styles */
public const int PS_SOLID           = 0;
public const int PS_DASH            = 1;/* ------- */
public const int PS_DOT             = 2;/* ....... */
public const int PS_DASHDOT         = 3;/* _._._._ */
public const int PS_DASHDOTDOT      = 4;/* _.._.._ */
public const int PS_NULL            = 5;
public const int PS_INSIDEFRAME     = 6;
public const int PS_USERSTYLE       = 7;
public const int PS_ALTERNATE       = 8;
public const int PS_STYLE_MASK      = 0x0000000F;

public const int PS_ENDCAP_ROUND    = 0x00000000;
public const int PS_ENDCAP_SQUARE   = 0x00000100;
public const int PS_ENDCAP_FLAT     = 0x00000200;
public const int PS_ENDCAP_MASK     = 0x00000F00;

public const int PS_JOIN_ROUND      = 0x00000000;
public const int PS_JOIN_BEVEL      = 0x00001000;
public const int PS_JOIN_MITER      = 0x00002000;
public const int PS_JOIN_MASK       = 0x0000F000;

public const int PS_COSMETIC        = 0x00000000;
public const int PS_GEOMETRIC       = 0x00010000;
public const int PS_TYPE_MASK       = 0x000F0000;

public const int AD_COUNTERCLOCKWISE =1;
public const int AD_CLOCKWISE        =2;

/* Device Parameters for GetDeviceCaps() */
public const int DRIVERVERSION =0;/* Device driver version */
public const int TECHNOLOGY    =2;/* Device classification */
public const int HORZSIZE      =4;/* Horizontal size in millimeters */
public const int VERTSIZE      =6;/* Vertical size in millimeters */
public const int HORZRES       =8;/* Horizontal width in pixels */
public const int VERTRES       =10;/* Vertical height in pixels */
public const int BITSPIXEL     =12;/* Number of bits per pixel */
public const int PLANES        =14;/* Number of planes */
public const int NUMBRUSHES    =16;/* Number of brushes the device has */
public const int NUMPENS       =18;/* Number of pens the device has */
public const int NUMMARKERS    =20;/* Number of markers the device has */
public const int NUMFONTS      =22;/* Number of fonts the device has */
public const int NUMCOLORS     =24;/* Number of colors the device supports */
public const int PDEVICESIZE   =26;/* Size required for device descriptor */
public const int CURVECAPS     =28;/* Curve capabilities */
public const int LINECAPS      =30;/* Line capabilities */
public const int&