The DeviceContext structure contains functions and structures to create and operate on device contexts.
structure DeviceContext:
sig
type BITMAP and HDC and HGDIOBJ and HWND and HRGN
type LOGBRUSH = Brush.LOGBRUSH
type LOGFONT = Font.LOGFONT
type LOGPEN = Pen.LOGPEN
type POINT = {x: int, y: int}
type StockObjectType
val ANSI_FIXED_FONT : StockObjectType
val ANSI_VAR_FONT : StockObjectType
val BLACK_BRUSH : StockObjectType
val BLACK_PEN : StockObjectType
val CLR_INVALID : StockObjectType
val DEFAULT_PALETTE : StockObjectType
val DEVICE_DEFAULT_FONT : StockObjectType
val DKGRAY_BRUSH : StockObjectType
val GRAY_BRUSH : StockObjectType
val HOLLOW_BRUSH : StockObjectType
val LTGRAY_BRUSH : StockObjectType
val NULL_BRUSH : StockObjectType
val NULL_PEN : StockObjectType
val OEM_FIXED_FONT : StockObjectType
val SYSTEM_FIXED_FONT : StockObjectType
val SYSTEM_FONT : StockObjectType
val WHITE_BRUSH : StockObjectType
val WHITE_PEN : StockObjectType
val GetStockObject : StockObjectType -> HGDIOBJ
eqtype DeviceItem
val ASPECTX : DeviceItem
val ASPECTXY : DeviceItem
val ASPECTY : DeviceItem
val BITSPIXEL : DeviceItem
val CLIPCAPS : DeviceItem
val COLORRES : DeviceItem
val CURVECAPS : DeviceItem
val DRIVERVERSION : DeviceItem
val HORZRES : DeviceItem
val HORZSIZE : DeviceItem
val LINECAPS : DeviceItem
val LOGPIXELSX : DeviceItem
val LOGPIXELSY : DeviceItem
val NUMBRUSHES : DeviceItem
val NUMCOLORS : DeviceItem
val NUMFONTS : DeviceItem
val NUMMARKERS : DeviceItem
val NUMPENS : DeviceItem
val NUMRESERVED : DeviceItem
val PDEVICESIZE : DeviceItem
val PHYSICALHEIGHT : DeviceItem
val PHYSICALOFFSETX : DeviceItem
val PHYSICALOFFSETY : DeviceItem
val PHYSICALWIDTH : DeviceItem
val PLANES : DeviceItem
val POLYGONALCAPS : DeviceItem
val RASTERCAPS : DeviceItem
val SCALINGFACTORX : DeviceItem
val SCALINGFACTORY : DeviceItem
val SIZEPALETTE : DeviceItem
val TECHNOLOGY : DeviceItem
val TEXTCAPS : DeviceItem
val VERTRES : DeviceItem
val VERTSIZE : DeviceItem
val GetDeviceCaps : HDC * DeviceItem -> int
(* Results of various calls to GetDeviceCaps. *)
val CC_CHORD : int
val CC_CIRCLES : int
val CC_ELLIPSES : int
val CC_INTERIORS : int
val CC_NONE : int
val CC_PIE : int
val CC_ROUNDRECT : int
val CC_STYLED : int
val CC_WIDE : int
val CC_WIDESTYLED : int
val CP_NONE : int
val CP_RECTANGLE : int
val CP_REGION : int
val DT_CHARSTREAM : int
val DT_DISPFILE : int
val DT_METAFILE : int
val DT_PLOTTER : int
val DT_RASCAMERA : int
val DT_RASDISPLAY : int
val DT_RASPRINTER : int
val LC_INTERIORS : int
val LC_MARKER : int
val LC_NONE : int
val LC_POLYLINE : int
val LC_POLYMARKER : int
val LC_STYLED : int
val LC_WIDE : int
val LC_WIDESTYLED : int
val PC_INTERIORS : int
val PC_NONE : int
val PC_PATHS : int
val PC_POLYGON : int
val PC_POLYPOLYGON : int
val PC_RECTANGLE : int
val PC_SCANLINE : int
val PC_STYLED : int
val PC_TRAPEZOID : int
val PC_WIDE : int
val PC_WIDESTYLED : int
val PC_WINDPOLYGON : int
val RC_BANDING : int
val RC_BIGFONT : int
val RC_BITBLT : int
val RC_BITMAP64 : int
val RC_DEVBITS : int
val RC_DIBTODEV : int
val RC_DI_BITMAP : int
val RC_FLOODFILL : int
val RC_GDI20_OUTPUT : int
val RC_GDI20_STATE : int
val RC_OP_DX_OUTPUT : int
val RC_PALETTE : int
val RC_SAVEBITMAP : int
val RC_SCALING : int
val RC_STRETCHBLT : int
val RC_STRETCHDIB : int
val TC_CP_STROKE : int
val TC_CR_90 : int
val TC_CR_ANY : int
val TC_EA_DOUBLE : int
val TC_IA_ABLE : int
val TC_OP_CHARACTER : int
val TC_OP_STROKE : int
val TC_RA_ABLE : int
val TC_RESERVED : int
val TC_SA_CONTIN : int
val TC_SA_DOUBLE : int
val TC_SA_INTEGER : int
val TC_SCROLLBLT : int
val TC_SF_X_YINDEP : int
val TC_SO_ABLE : int
val TC_UA_ABLE : int
val TC_VA_ABLE : int
datatype DMColor = DMCOLOR_COLOR | DMCOLOR_MONOCHROME
and DMDither =
DMDITHER_COARSE
| DMDITHER_FINE
| DMDITHER_GRAYSCALE
| DMDITHER_LINEART
| DMDITHER_NONE
| DMDITHER_OTHER of int
and DMDuplex = DMDUP_HORIZONTAL | DMDUP_SIMPLEX | DMDUP_VERTICAL
and DMICMIntent =
DMICMINTENT_OTHER of int
| DMICM_COLORMETRIC
| DMICM_CONTRAST
| DMICM_SATURATE
and DMICMMethod =
DMICMMETHOD_DEVICE
| DMICMMETHOD_DRIVER
| DMICMMETHOD_NONE
| DMICMMETHOD_OTHER of int
| DMICMMETHOD_SYSTEM
and DMMedia =
DMICMMEDIA_OTHER of int
| DMMEDIA_GLOSSY
| DMMEDIA_STANDARD
| DMMEDIA_TRANSPARENCY
and DMOrientation = DMORIENT_LANDSCAPE | DMORIENT_PORTRAIT
and DMPaperSize =
DMPAPER_10X11
| DMPAPER_10X14
| DMPAPER_11X17
| DMPAPER_15X11
| DMPAPER_9X11
| DMPAPER_A2
| DMPAPER_A3
| DMPAPER_A3_EXTRA
| DMPAPER_A3_EXTRA_TRANSVERSE
| DMPAPER_A3_TRANSVERSE
| DMPAPER_A4
| DMPAPER_A4SMALL
| DMPAPER_A4_EXTRA
| DMPAPER_A4_PLUS
| DMPAPER_A4_TRANSVERSE
| DMPAPER_A5
| DMPAPER_A5_EXTRA
| DMPAPER_A5_TRANSVERSE
| DMPAPER_A_PLUS
| DMPAPER_B4
| DMPAPER_B5
| DMPAPER_B5_EXTRA
| DMPAPER_B5_TRANSVERSE
| DMPAPER_B_PLUS
| DMPAPER_CSHEET
| DMPAPER_DSHEET
| DMPAPER_ENV_10
| DMPAPER_ENV_11
| DMPAPER_ENV_12
| DMPAPER_ENV_14
| DMPAPER_ENV_9
| DMPAPER_ENV_B4
| DMPAPER_ENV_B5
| DMPAPER_ENV_B6
| DMPAPER_ENV_C3
| DMPAPER_ENV_C4
| DMPAPER_ENV_C5
| DMPAPER_ENV_C6
| DMPAPER_ENV_C65
| DMPAPER_ENV_DL
| DMPAPER_ENV_INVITE
| DMPAPER_ENV_ITALY
| DMPAPER_ENV_MONARCH
| DMPAPER_ENV_PERSONAL
| DMPAPER_ESHEET
| DMPAPER_EXECUTIVE
| DMPAPER_FANFOLD_LGL_GERMAN
| DMPAPER_FANFOLD_STD_GERMAN
| DMPAPER_FANFOLD_US
| DMPAPER_FOLIO
| DMPAPER_ISO_B4
| DMPAPER_JAPANESE_POSTCARD
| DMPAPER_LEDGER
| DMPAPER_LEGAL
| DMPAPER_LEGAL_EXTRA
| DMPAPER_LETTER
| DMPAPER_LETTERSMALL
| DMPAPER_LETTER_EXTRA
| DMPAPER_LETTER_EXTRA_TRANSVERSE
| DMPAPER_LETTER_PLUS
| DMPAPER_LETTER_TRANSVERSE
| DMPAPER_NOTE
| DMPAPER_OTHER of int
| DMPAPER_QUARTO
| DMPAPER_RESERVED_48
| DMPAPER_RESERVED_49
| DMPAPER_STATEMENT
| DMPAPER_TABLOID
| DMPAPER_TABLOID_EXTRA
and DMResolution =
DMRES_DPI of int
| DMRES_DRAFT
| DMRES_HIGH
| DMRES_LOW
| DMRES_MEDIUM
and DMSource =
DMBIN_AUTO
| DMBIN_CASSETTE
| DMBIN_ENVELOPE
| DMBIN_ENVMANUAL
| DMBIN_FORMSOURCE
| DMBIN_LARGECAPACITY
| DMBIN_LARGEFMT
| DMBIN_LOWER
| DMBIN_MANUAL
| DMBIN_MIDDLE
| DMBIN_ONLYONE
| DMBIN_SMALLFMT
| DMBIN_TRACTOR
| DMBIN_UPPER
| DMSOURCE_OTHER of int
and DMTrueType =
DMTT_BITMAP
| DMTT_DOWNLOAD
| DMTT_DOWNLOAD_OUTLINE
| DMTT_SUBDEV
type DEVMODE = {
deviceName: string,
driverVersion: int,
orientation: DMOrientation option,
paperSize: DMPaperSize option,
paperLength: int option,
paperWidth: int option,
scale: int option,
copies: int option,
defaultSource: DMSource option,
printQuality: DMResolution option,
color: DMColor option,
duplex: DMDuplex option,
yResolution: int option,
ttOption: DMTrueType option,
collate: bool option,
formName: string option,
logPixels: int option,
bitsPerPixel: int option,
pelsWidth: int option,
pelsHeight: int option,
displayFlags: int option, (* Apparently no longer used. *)
displayFrequency: int option,
icmMethod: DMICMMethod option,
icmIntent: DMICMIntent option,
mediaType: DMMedia option,
ditherType: DMDither option,
iccManufacturer: int option,
iccModel: int option,
panningWidth: int option,
panningHeight: int option,
driverPrivate: Word8Vector.vector
}
val CancelDC : HDC -> unit
val CreateCompatibleDC : HDC -> HDC
val CreateDC : string option * string option * string option * DEVMODE option -> HDC
val DeleteDC : HDC -> unit
val DeleteObject : HGDIOBJ -> unit
datatype
EnumObject =
OBJ_BITMAP
| OBJ_BRUSH
| OBJ_DC
| OBJ_ENHMETADC
| OBJ_ENHMETAFILE
| OBJ_EXTPEN
| OBJ_FONT
| OBJ_MEMDC
| OBJ_METADC
| OBJ_METAFILE
| OBJ_PAL
| OBJ_PEN
| OBJ_REGION
val GetCurrentObject : HDC * EnumObject -> HGDIOBJ
val GetDC : HWND -> HDC
datatype
DeviceContextFlag =
DCX_CACHE
| DCX_CLIPCHILDREN
| DCX_CLIPSIBLINGS
| DCX_EXCLUDERGN
| DCX_EXCLUDEUPDATE
| DCX_INTERSECTRGN
| DCX_INTERSECTUPDATE
| DCX_LOCKWINDOWUPDATE
| DCX_NORECOMPUTE
| DCX_NORESETATTRS
| DCX_PARENTCLIP
| DCX_VALIDATE
| DCX_WINDOW
val GetDCEx : HWND * HRGN * DeviceContextFlag list -> HDC
val GetDCOrgEx : HDC -> POINT
datatype
GetObject =
GO_Bitmap of BITMAP
| GO_Brush of LOGBRUSH
| GO_Font of LOGFONT
| GO_Palette of int
| GO_Pen of LOGPEN
val GetObject : HGDIOBJ -> GetObject
val GetObjectType : HGDIOBJ -> EnumObject
val ReleaseDC : HWND * HDC -> bool
val ResetDC : HDC * DEVMODE -> HDC
val RestoreDC : HDC * int -> unit
val SaveDC : HDC -> int
val SelectObject : HDC * HGDIOBJ -> HGDIOBJ
type DEVNAMES = {driver: string, device: string, output: string, default: bool}
end