1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 2<html> 3 4<head> 5<title>Windows Interface Reference: DeviceContext structure</title> 6</head> 7 8<body> 9 10<h1>DeviceContext</h1> 11 12<p>The DeviceContext structure contains functions and structures to create and operate on 13device contexts.</p> 14 15<pre>structure DeviceContext: 16 sig 17 type BITMAP and HDC and HGDIOBJ and HWND and HRGN 18 type LOGBRUSH = Brush.LOGBRUSH 19 type LOGFONT = Font.LOGFONT 20 type LOGPEN = Pen.LOGPEN 21 type POINT = {x: int, y: int} 22 23 type StockObjectType 24 val ANSI_FIXED_FONT : StockObjectType 25 val ANSI_VAR_FONT : StockObjectType 26 val BLACK_BRUSH : StockObjectType 27 val BLACK_PEN : StockObjectType 28 val CLR_INVALID : StockObjectType 29 val DEFAULT_PALETTE : StockObjectType 30 val DEVICE_DEFAULT_FONT : StockObjectType 31 val DKGRAY_BRUSH : StockObjectType 32 val GRAY_BRUSH : StockObjectType 33 val HOLLOW_BRUSH : StockObjectType 34 val LTGRAY_BRUSH : StockObjectType 35 val NULL_BRUSH : StockObjectType 36 val NULL_PEN : StockObjectType 37 val OEM_FIXED_FONT : StockObjectType 38 val SYSTEM_FIXED_FONT : StockObjectType 39 val SYSTEM_FONT : StockObjectType 40 val WHITE_BRUSH : StockObjectType 41 val WHITE_PEN : StockObjectType 42 43 val GetStockObject : StockObjectType -> HGDIOBJ 44 45 eqtype DeviceItem 46 val ASPECTX : DeviceItem 47 val ASPECTXY : DeviceItem 48 val ASPECTY : DeviceItem 49 val BITSPIXEL : DeviceItem 50 val CLIPCAPS : DeviceItem 51 val COLORRES : DeviceItem 52 val CURVECAPS : DeviceItem 53 val DRIVERVERSION : DeviceItem 54 val HORZRES : DeviceItem 55 val HORZSIZE : DeviceItem 56 val LINECAPS : DeviceItem 57 val LOGPIXELSX : DeviceItem 58 val LOGPIXELSY : DeviceItem 59 val NUMBRUSHES : DeviceItem 60 val NUMCOLORS : DeviceItem 61 val NUMFONTS : DeviceItem 62 val NUMMARKERS : DeviceItem 63 val NUMPENS : DeviceItem 64 val NUMRESERVED : DeviceItem 65 val PDEVICESIZE : DeviceItem 66 val PHYSICALHEIGHT : DeviceItem 67 val PHYSICALOFFSETX : DeviceItem 68 val PHYSICALOFFSETY : DeviceItem 69 val PHYSICALWIDTH : DeviceItem 70 val PLANES : DeviceItem 71 val POLYGONALCAPS : DeviceItem 72 val RASTERCAPS : DeviceItem 73 val SCALINGFACTORX : DeviceItem 74 val SCALINGFACTORY : DeviceItem 75 val SIZEPALETTE : DeviceItem 76 val TECHNOLOGY : DeviceItem 77 val TEXTCAPS : DeviceItem 78 val VERTRES : DeviceItem 79 val VERTSIZE : DeviceItem 80 81 val GetDeviceCaps : HDC * DeviceItem -> int 82 83 (* Results of various calls to GetDeviceCaps. *) 84 val CC_CHORD : int 85 val CC_CIRCLES : int 86 val CC_ELLIPSES : int 87 val CC_INTERIORS : int 88 val CC_NONE : int 89 val CC_PIE : int 90 val CC_ROUNDRECT : int 91 val CC_STYLED : int 92 val CC_WIDE : int 93 val CC_WIDESTYLED : int 94 95 val CP_NONE : int 96 val CP_RECTANGLE : int 97 val CP_REGION : int 98 99 val DT_CHARSTREAM : int 100 val DT_DISPFILE : int 101 val DT_METAFILE : int 102 val DT_PLOTTER : int 103 val DT_RASCAMERA : int 104 val DT_RASDISPLAY : int 105 val DT_RASPRINTER : int 106 107 val LC_INTERIORS : int 108 val LC_MARKER : int 109 val LC_NONE : int 110 val LC_POLYLINE : int 111 val LC_POLYMARKER : int 112 val LC_STYLED : int 113 val LC_WIDE : int 114 val LC_WIDESTYLED : int 115 116 val PC_INTERIORS : int 117 val PC_NONE : int 118 val PC_PATHS : int 119 val PC_POLYGON : int 120 val PC_POLYPOLYGON : int 121 val PC_RECTANGLE : int 122 val PC_SCANLINE : int 123 val PC_STYLED : int 124 val PC_TRAPEZOID : int 125 val PC_WIDE : int 126 val PC_WIDESTYLED : int 127 val PC_WINDPOLYGON : int 128 129 val RC_BANDING : int 130 val RC_BIGFONT : int 131 val RC_BITBLT : int 132 val RC_BITMAP64 : int 133 val RC_DEVBITS : int 134 val RC_DIBTODEV : int 135 val RC_DI_BITMAP : int 136 val RC_FLOODFILL : int 137 val RC_GDI20_OUTPUT : int 138 val RC_GDI20_STATE : int 139 val RC_OP_DX_OUTPUT : int 140 val RC_PALETTE : int 141 val RC_SAVEBITMAP : int 142 val RC_SCALING : int 143 val RC_STRETCHBLT : int 144 val RC_STRETCHDIB : int 145 146 val TC_CP_STROKE : int 147 val TC_CR_90 : int 148 val TC_CR_ANY : int 149 val TC_EA_DOUBLE : int 150 val TC_IA_ABLE : int 151 val TC_OP_CHARACTER : int 152 val TC_OP_STROKE : int 153 val TC_RA_ABLE : int 154 val TC_RESERVED : int 155 val TC_SA_CONTIN : int 156 val TC_SA_DOUBLE : int 157 val TC_SA_INTEGER : int 158 val TC_SCROLLBLT : int 159 val TC_SF_X_YINDEP : int 160 val TC_SO_ABLE : int 161 val TC_UA_ABLE : int 162 val TC_VA_ABLE : int 163 164 datatype DMColor = DMCOLOR_COLOR | DMCOLOR_MONOCHROME 165 and DMDither = 166 DMDITHER_COARSE 167 | DMDITHER_FINE 168 | DMDITHER_GRAYSCALE 169 | DMDITHER_LINEART 170 | DMDITHER_NONE 171 | DMDITHER_OTHER of int 172 and DMDuplex = DMDUP_HORIZONTAL | DMDUP_SIMPLEX | DMDUP_VERTICAL 173 and DMICMIntent = 174 DMICMINTENT_OTHER of int 175 | DMICM_COLORMETRIC 176 | DMICM_CONTRAST 177 | DMICM_SATURATE 178 and DMICMMethod = 179 DMICMMETHOD_DEVICE 180 | DMICMMETHOD_DRIVER 181 | DMICMMETHOD_NONE 182 | DMICMMETHOD_OTHER of int 183 | DMICMMETHOD_SYSTEM 184 and DMMedia = 185 DMICMMEDIA_OTHER of int 186 | DMMEDIA_GLOSSY 187 | DMMEDIA_STANDARD 188 | DMMEDIA_TRANSPARENCY 189 and DMOrientation = DMORIENT_LANDSCAPE | DMORIENT_PORTRAIT 190 and DMPaperSize = 191 DMPAPER_10X11 192 | DMPAPER_10X14 193 | DMPAPER_11X17 194 | DMPAPER_15X11 195 | DMPAPER_9X11 196 | DMPAPER_A2 197 | DMPAPER_A3 198 | DMPAPER_A3_EXTRA 199 | DMPAPER_A3_EXTRA_TRANSVERSE 200 | DMPAPER_A3_TRANSVERSE 201 | DMPAPER_A4 202 | DMPAPER_A4SMALL 203 | DMPAPER_A4_EXTRA 204 | DMPAPER_A4_PLUS 205 | DMPAPER_A4_TRANSVERSE 206 | DMPAPER_A5 207 | DMPAPER_A5_EXTRA 208 | DMPAPER_A5_TRANSVERSE 209 | DMPAPER_A_PLUS 210 | DMPAPER_B4 211 | DMPAPER_B5 212 | DMPAPER_B5_EXTRA 213 | DMPAPER_B5_TRANSVERSE 214 | DMPAPER_B_PLUS 215 | DMPAPER_CSHEET 216 | DMPAPER_DSHEET 217 | DMPAPER_ENV_10 218 | DMPAPER_ENV_11 219 | DMPAPER_ENV_12 220 | DMPAPER_ENV_14 221 | DMPAPER_ENV_9 222 | DMPAPER_ENV_B4 223 | DMPAPER_ENV_B5 224 | DMPAPER_ENV_B6 225 | DMPAPER_ENV_C3 226 | DMPAPER_ENV_C4 227 | DMPAPER_ENV_C5 228 | DMPAPER_ENV_C6 229 | DMPAPER_ENV_C65 230 | DMPAPER_ENV_DL 231 | DMPAPER_ENV_INVITE 232 | DMPAPER_ENV_ITALY 233 | DMPAPER_ENV_MONARCH 234 | DMPAPER_ENV_PERSONAL 235 | DMPAPER_ESHEET 236 | DMPAPER_EXECUTIVE 237 | DMPAPER_FANFOLD_LGL_GERMAN 238 | DMPAPER_FANFOLD_STD_GERMAN 239 | DMPAPER_FANFOLD_US 240 | DMPAPER_FOLIO 241 | DMPAPER_ISO_B4 242 | DMPAPER_JAPANESE_POSTCARD 243 | DMPAPER_LEDGER 244 | DMPAPER_LEGAL 245 | DMPAPER_LEGAL_EXTRA 246 | DMPAPER_LETTER 247 | DMPAPER_LETTERSMALL 248 | DMPAPER_LETTER_EXTRA 249 | DMPAPER_LETTER_EXTRA_TRANSVERSE 250 | DMPAPER_LETTER_PLUS 251 | DMPAPER_LETTER_TRANSVERSE 252 | DMPAPER_NOTE 253 | DMPAPER_OTHER of int 254 | DMPAPER_QUARTO 255 | DMPAPER_RESERVED_48 256 | DMPAPER_RESERVED_49 257 | DMPAPER_STATEMENT 258 | DMPAPER_TABLOID 259 | DMPAPER_TABLOID_EXTRA 260 and DMResolution = 261 DMRES_DPI of int 262 | DMRES_DRAFT 263 | DMRES_HIGH 264 | DMRES_LOW 265 | DMRES_MEDIUM 266 and DMSource = 267 DMBIN_AUTO 268 | DMBIN_CASSETTE 269 | DMBIN_ENVELOPE 270 | DMBIN_ENVMANUAL 271 | DMBIN_FORMSOURCE 272 | DMBIN_LARGECAPACITY 273 | DMBIN_LARGEFMT 274 | DMBIN_LOWER 275 | DMBIN_MANUAL 276 | DMBIN_MIDDLE 277 | DMBIN_ONLYONE 278 | DMBIN_SMALLFMT 279 | DMBIN_TRACTOR 280 | DMBIN_UPPER 281 | DMSOURCE_OTHER of int 282 and DMTrueType = 283 DMTT_BITMAP 284 | DMTT_DOWNLOAD 285 | DMTT_DOWNLOAD_OUTLINE 286 | DMTT_SUBDEV 287 288 type DEVMODE = { 289 deviceName: string, 290 driverVersion: int, 291 orientation: DMOrientation option, 292 paperSize: DMPaperSize option, 293 paperLength: int option, 294 paperWidth: int option, 295 scale: int option, 296 copies: int option, 297 defaultSource: DMSource option, 298 printQuality: DMResolution option, 299 color: DMColor option, 300 duplex: DMDuplex option, 301 yResolution: int option, 302 ttOption: DMTrueType option, 303 collate: bool option, 304 formName: string option, 305 logPixels: int option, 306 bitsPerPixel: int option, 307 pelsWidth: int option, 308 pelsHeight: int option, 309 displayFlags: int option, (* Apparently no longer used. *) 310 displayFrequency: int option, 311 icmMethod: DMICMMethod option, 312 icmIntent: DMICMIntent option, 313 mediaType: DMMedia option, 314 ditherType: DMDither option, 315 iccManufacturer: int option, 316 iccModel: int option, 317 panningWidth: int option, 318 panningHeight: int option, 319 driverPrivate: Word8Vector.vector 320 } 321 322 val CancelDC : HDC -> unit 323 val CreateCompatibleDC : HDC -> HDC 324 val <a 325name="CreateDC">CreateDC</a> : string option * string option * string option * DEVMODE option -> HDC 326 327 val <a 328name="DeleteDC">DeleteDC</a> : HDC -> unit 329 val <a name="DeleteObject">DeleteObject</a> : HGDIOBJ -> unit 330 331 datatype 332 EnumObject = 333 OBJ_BITMAP 334 | OBJ_BRUSH 335 | OBJ_DC 336 | OBJ_ENHMETADC 337 | OBJ_ENHMETAFILE 338 | OBJ_EXTPEN 339 | OBJ_FONT 340 | OBJ_MEMDC 341 | OBJ_METADC 342 | OBJ_METAFILE 343 | OBJ_PAL 344 | OBJ_PEN 345 | OBJ_REGION 346 val <a 347name="GetCurrentObject">GetCurrentObject</a> : HDC * EnumObject -> HGDIOBJ 348 val GetDC : HWND -> HDC 349 350 datatype 351 DeviceContextFlag = 352 DCX_CACHE 353 | DCX_CLIPCHILDREN 354 | DCX_CLIPSIBLINGS 355 | DCX_EXCLUDERGN 356 | DCX_EXCLUDEUPDATE 357 | DCX_INTERSECTRGN 358 | DCX_INTERSECTUPDATE 359 | DCX_LOCKWINDOWUPDATE 360 | DCX_NORECOMPUTE 361 | DCX_NORESETATTRS 362 | DCX_PARENTCLIP 363 | DCX_VALIDATE 364 | DCX_WINDOW 365 366 val GetDCEx : HWND * HRGN * DeviceContextFlag list -> HDC 367 val GetDCOrgEx : HDC -> POINT 368 369 datatype 370 GetObject = 371 GO_Bitmap of BITMAP 372 | GO_Brush of LOGBRUSH 373 | GO_Font of LOGFONT 374 | GO_Palette of int 375 | GO_Pen of LOGPEN 376 377 val GetObject : HGDIOBJ -> GetObject 378 val <a 379name="GetObjectType">GetObjectType</a> : HGDIOBJ -> EnumObject 380 val ReleaseDC : HWND * HDC -> bool 381 val ResetDC : HDC * DEVMODE -> HDC 382 val RestoreDC : HDC * int -> unit 383 val SaveDC : HDC -> int 384 val <a 385name="SelectObject">SelectObject</a> : HDC * HGDIOBJ -> HGDIOBJ 386 387 type DEVNAMES = {driver: string, device: string, output: string, default: bool} 388 389 end</pre> 390</body> 391</html> 392