/* ScummVM - Graphic Adventure Engine * * ScummVM is the legal property of its developers, whose names * are too numerous to list here. Please refer to the COPYRIGHT * file distributed with this source distribution. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ #ifndef BAGEL_MFC_WINGDI_H #define BAGEL_MFC_WINGDI_H #include "bagel/mfc/minwindef.h" namespace Bagel { namespace MFC { class CDC; #define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (uint32)(uint16)(i))) /* * Class styles */ #define CS_VREDRAW 0x0001 #define CS_HREDRAW 0x0002 #define CS_DBLCLKS 0x0008 #define CS_OWNDC 0x0020 #define CS_CLASSDC 0x0040 #define CS_PARENTDC 0x0080 #define CS_NOCLOSE 0x0200 #define CS_SAVEBITS 0x0800 #define CS_BYTEALIGNCLIENT 0x1000 #define CS_BYTEALIGNWINDOW 0x2000 #define CS_GLOBALCLASS 0x4000 /* Device Parameters for GetDeviceCaps() */ #define DRIVERVERSION 0 /* Device driver version */ #define TECHNOLOGY 2 /* Device classification */ #define HORZSIZE 4 /* Horizontal size in millimeters */ #define VERTSIZE 6 /* Vertical size in millimeters */ #define HORZRES 8 /* Horizontal width in pixels */ #define VERTRES 10 /* Vertical height in pixels */ #define BITSPIXEL 12 /* Number of bits per pixel */ #define PLANES 14 /* Number of planes */ #define NUMBRUSHES 16 /* Number of brushes the device has */ #define NUMPENS 18 /* Number of pens the device has */ #define NUMMARKERS 20 /* Number of markers the device has */ #define NUMFONTS 22 /* Number of fonts the device has */ #define NUMCOLORS 24 /* Number of colors the device supports */ #define PDEVICESIZE 26 /* Size required for device descriptor */ #define CURVECAPS 28 /* Curve capabilities */ #define LINECAPS 30 /* Line capabilities */ #define POLYGONALCAPS 32 /* Polygonal capabilities */ #define TEXTCAPS 34 /* Text capabilities */ #define CLIPCAPS 36 /* Clipping capabilities */ #define RASTERCAPS 38 /* Bitblt capabilities */ #define ASPECTX 40 /* Length of the X leg */ #define ASPECTY 42 /* Length of the Y leg */ #define ASPECTXY 44 /* Length of the hypotenuse */ #define LOGPIXELSX 88 /* Logical pixels/inch in X */ #define LOGPIXELSY 90 /* Logical pixels/inch in Y */ #define SIZEPALETTE 104 /* Number of entries in physical palette */ #define NUMRESERVED 106 /* Number of reserved entries in palette */ #define COLORRES 108 /* Actual color resolution */ // Printing related DeviceCaps. These replace the appropriate Escapes #define PHYSICALWIDTH 110 /* Physical Width in device units */ #define PHYSICALHEIGHT 111 /* Physical Height in device units */ #define PHYSICALOFFSETX 112 /* Physical Printable Area x margin */ #define PHYSICALOFFSETY 113 /* Physical Printable Area y margin */ #define SCALINGFACTORX 114 /* Scaling factor x */ #define SCALINGFACTORY 115 /* Scaling factor y */ // Display driver specific #define VREFRESH 116 /* Current vertical refresh rate of the */ /* display device (for displays only) in Hz*/ #define DESKTOPVERTRES 117 /* Horizontal width of entire desktop in */ /* pixels */ #define DESKTOPHORZRES 118 /* Vertical height of entire desktop in */ /* pixels */ #define BLTALIGNMENT 119 /* Preferred blt alignment */ #define SHADEBLENDCAPS 120 /* Shading and blending caps */ #define COLORMGMTCAPS 121 /* Color Management caps */ /* Raster Capabilities */ #define RC_NONE #define RC_BITBLT 1 /* Can do standard BLT. */ #define RC_BANDING 2 /* Device requires banding support */ #define RC_SCALING 4 /* Device requires scaling support */ #define RC_BITMAP64 8 /* Device can support >64K bitmap */ #define RC_GDI20_OUTPUT 0x0010 /* has 2.0 output calls */ #define RC_GDI20_STATE 0x0020 #define RC_SAVEBITMAP 0x0040 #define RC_DI_BITMAP 0x0080 /* supports DIB to memory */ #define RC_PALETTE 0x0100 /* supports a palette */ #define RC_DIBTODEV 0x0200 /* supports DIBitsToDevice */ #define RC_BIGFONT 0x0400 /* supports >64K fonts */ #define RC_STRETCHBLT 0x0800 /* supports StretchBlt */ #define RC_FLOODFILL 0x1000 /* supports FloodFill */ #define RC_STRETCHDIB 0x2000 /* supports StretchDIBits */ #define RC_OP_DX_OUTPUT 0x4000 #define RC_DEVBITS 0x8000 /* Ternary raster operations */ #define SRCCOPY (uint32)0x00CC0020 /* dest = source */ #define SRCPAINT (uint32)0x00EE0086 /* dest = source OR dest */ #define SRCAND (uint32)0x008800C6 /* dest = source AND dest */ #define SRCINVERT (uint32)0x00660046 /* dest = source XOR dest */ #define SRCERASE (uint32)0x00440328 /* dest = source AND (NOT dest ) */ #define NOTSRCCOPY (uint32)0x00330008 /* dest = (NOT source) */ #define NOTSRCERASE (uint32)0x001100A6 /* dest = (NOT src) AND (NOT dest) */ #define MERGECOPY (uint32)0x00C000CA /* dest = (source AND pattern) */ #define MERGEPAINT (uint32)0x00BB0226 /* dest = (NOT source) OR dest */ #define PATCOPY (uint32)0x00F00021 /* dest = pattern */ #define PATPAINT (uint32)0x00FB0A09 /* dest = DPSnoo */ #define PATINVERT (uint32)0x005A0049 /* dest = pattern XOR dest */ #define DSTINVERT (uint32)0x00550009 /* dest = (NOT dest) */ #define BLACKNESS (uint32)0x00000042 /* dest = BLACK */ #define WHITENESS (uint32)0x00FF0062 /* dest = WHITE */ #define NOMIRRORBITMAP (uint32)0x80000000 /* Do not Mirror the bitmap in this call */ #define CAPTUREBLT (uint32)0x40000000 /* Include layered windows */ /* StretchBlt() Modes */ #define BLACKONWHITE 1 #define WHITEONBLACK 2 #define COLORONCOLOR 3 #define HALFTONE 4 #define MAXSTRETCHBLTMODE 4 /* DIB color table identifiers */ #define DIB_RGB_COLORS 0 /* color table in RGBs */ #define DIB_PAL_COLORS 1 /* color table in palette indices */ /* constants for CreateDIBitmap */ #define CBM_INIT 0x04L /* initialize bitmap */ /* * ShowWindow() Commands */ #define SW_HIDE 0 #define SW_SHOWNORMAL 1 #define SW_NORMAL 1 #define SW_SHOWMINIMIZED 2 #define SW_SHOWMAXIMIZED 3 #define SW_MAXIMIZE 3 #define SW_SHOWNOACTIVATE 4 #define SW_SHOW 5 #define SW_MINIMIZE 6 #define SW_SHOWMINNOACTIVE 7 #define SW_SHOWNA 8 #define SW_RESTORE 9 #define SW_SHOWDEFAULT 10 #define SW_FORCEMINIMIZE 11 #define SW_MAX 11 /* GetWindowWord */ #define GWW_HINSTANCE (-6) /* Font Families */ #define FF_DONTCARE (0<<4) /* Don't care or don't know. */ #define FF_ROMAN (1<<4) /* Variable stroke width, serifed. */ /* Times Roman, Century Schoolbook, etc. */ #define FF_SWISS (2<<4) /* Variable stroke width, sans-serifed. */ /* Helvetica, Swiss, etc. */ #define FF_MODERN (3<<4) /* Constant stroke width, serifed or sans-serifed. */ /* Pica, Elite, Courier, etc. */ #define FF_SCRIPT (4<<4) /* Cursive, etc. */ #define FF_DECORATIVE (5<<4) /* Old English, etc. */ /* Font Weights */ enum FontWeight { FW_DONTCARE = 0, FW_THIN = 100, FW_EXTRALIGHT = 200, FW_LIGHT = 300, FW_NORMAL = 400, FW_MEDIUM = 500, FW_SEMIBOLD = 600, FW_BOLD = 700, FW_EXTRABOLD = 800, FW_HEAVY = 900, FW_ULTRALIGHT = FW_EXTRALIGHT, FW_REGULAR = FW_NORMAL, FW_DEMIBOLD = FW_SEMIBOLD, FW_ULTRABOLD = FW_EXTRABOLD, FW_BLACK = FW_HEAVY }; #define OUT_DEFAULT_PRECIS 0 #define OUT_STRING_PRECIS 1 #define OUT_CHARACTER_PRECIS 2 #define OUT_STROKE_PRECIS 3 #define OUT_TT_PRECIS 4 #define OUT_DEVICE_PRECIS 5 #define OUT_RASTER_PRECIS 6 #define OUT_TT_ONLY_PRECIS 7 #define OUT_OUTLINE_PRECIS 8 #define OUT_SCREEN_OUTLINE_PRECIS 9 #define OUT_PS_ONLY_PRECIS 10 #define DEFAULT_QUALITY 0 #define DRAFT_QUALITY 1 #define PROOF_QUALITY 2 #define NONANTIALIASED_QUALITY 3 #define ANTIALIASED_QUALITY 4 /* Background Modes */ #define TRANSPARENT 1 #define OPAQUE 2 #define BKMODE_LAST 2 /* * Button Control Styles */ #define BS_PUSHBUTTON 0x00000000L #define BS_DEFPUSHBUTTON 0x00000001L #define BS_CHECKBOX 0x00000002L #define BS_AUTOCHECKBOX 0x00000003L #define BS_RADIOBUTTON 0x00000004L #define BS_3STATE 0x00000005L #define BS_AUTO3STATE 0x00000006L #define BS_GROUPBOX 0x00000007L #define BS_USERBUTTON 0x00000008L #define BS_AUTORADIOBUTTON 0x00000009L #define BS_PUSHBOX 0x0000000AL #define BS_OWNERDRAW 0x0000000BL #define BS_TYPEMASK 0x0000000FL #define BS_LEFTTEXT 0x00000020L #define BS_TEXT 0x00000000L #define BS_ICON 0x00000040L #define BS_BITMAP 0x00000080L #define BS_LEFT 0x00000100L #define BS_RIGHT 0x00000200L #define BS_CENTER 0x00000300L #define BS_TOP 0x00000400L #define BS_BOTTOM 0x00000800L #define BS_VCENTER 0x00000C00L #define BS_PUSHLIKE 0x00001000L #define BS_MULTILINE 0x00002000L #define BS_NOTIFY 0x00004000L #define BS_FLAT 0x00008000L #define BS_RIGHTBUTTON BS_LEFTTEXT /* * Standard Cursor IDs */ #define MAKEINTRESOURCE(i) ((char *)((uintptr)((uint16)(i)))) #define IDC_NONE 0 #define IDC_ARROW MAKEINTRESOURCE(32512) #define IDC_IBEAM MAKEINTRESOURCE(32513) #define IDC_WAIT MAKEINTRESOURCE(32514) #define IDC_CROSS MAKEINTRESOURCE(32515) #define IDC_UPARROW MAKEINTRESOURCE(32516) #define IDC_SIZE MAKEINTRESOURCE(32640) /* OBSOLETE: use IDC_SIZEALL */ #define IDC_ICON MAKEINTRESOURCE(32641) /* OBSOLETE: use IDC_ARROW */ #define IDC_SIZENWSE MAKEINTRESOURCE(32642) #define IDC_SIZENESW MAKEINTRESOURCE(32643) #define IDC_SIZEWE MAKEINTRESOURCE(32644) #define IDC_SIZENS MAKEINTRESOURCE(32645) #define IDC_SIZEALL MAKEINTRESOURCE(32646) #define IDC_NO MAKEINTRESOURCE(32648) /*not in win3.1 */ #define IDC_HAND MAKEINTRESOURCE(32649) #define IDC_APPSTARTING MAKEINTRESOURCE(32650) /*not in win3.1 */ #define IDC_HELP MAKEINTRESOURCE(32651) /* * Owner draw state */ enum { ODS_SELECTED = 0x0001, ODS_ENABLED = 0x0002, ODS_DISABLED = 0x0004, ODS_GRAYED = ODS_DISABLED, ODS_CHECKED = 0x0008, ODS_FOCUS = 0x0010, ODS_DEFAULT = 0x0020, ODS_COMBOBOXEDIT = 0x1000, ODS_HOTLIGHT = 0x0040, ODS_INACTIVE = 0x0080, ODS_NOACCEL = 0x0100, ODS_NOFOCUSRECT = 0x0200 }; enum { BST_UNCHECKED = 0, BST_CHECKED = 1, BST_INDETERMINATE = 2, BST_PUSHED = 4, BST_FOCUS = 8 }; /* Stock Logical Objects */ #define WHITE_BRUSH 0 #define LTGRAY_BRUSH 1 #define GRAY_BRUSH 2 #define DKGRAY_BRUSH 3 #define BLACK_BRUSH 4 #define NULL_BRUSH 5 #define HOLLOW_BRUSH NULL_BRUSH #define WHITE_PEN 6 #define BLACK_PEN 7 #define NULL_PEN 8 #define OEM_FIXED_FONT 10 #define ANSI_FIXED_FONT 11 #define ANSI_VAR_FONT 12 #define SYSTEM_FONT 13 #define DEVICE_DEFAULT_FONT 14 #define DEFAULT_PALETTE 15 #define SYSTEM_FIXED_FONT 16 /* Pen Styles */ #define PS_SOLID 0 #define PS_DASH 1 /* ------- */ #define PS_DOT 2 /* ....... */ #define PS_DASHDOT 3 /* _._._._ */ #define PS_DASHDOTDOT 4 /* _.._.._ */ #define PS_NULL 5 #define PS_INSIDEFRAME 6 #define PS_USERSTYLE 7 #define PS_ALTERNATE 8 #define PS_STYLE_MASK 0x0000000F /* * Button Control Messages */ #define BM_GETCHECK 0x00F0 #define BM_SETCHECK 0x00F1 #define BM_GETSTATE 0x00F2 #define BM_SETSTATE 0x00F3 #define BM_SETSTYLE 0x00F4 #define BM_CLICK 0x00F5 #define BM_GETIMAGE 0x00F6 #define BM_SETIMAGE 0x00F7 #define BM_SETDONTCLICK 0x00F8 /* * Owner draw control types */ #define ODT_MENU 1 #define ODT_LISTBOX 2 #define ODT_COMBOBOX 3 #define ODT_BUTTON 4 #define ODT_STATIC 5 /* * Owner draw actions */ #define ODA_DRAWENTIRE 0x0001 #define ODA_SELECT 0x0002 #define ODA_FOCUS 0x0004 /* * Color Types */ #define CTLCOLOR_MSGBOX 0 #define CTLCOLOR_EDIT 1 #define CTLCOLOR_LISTBOX 2 #define CTLCOLOR_BTN 3 #define CTLCOLOR_DLG 4 #define CTLCOLOR_SCROLLBAR 5 #define CTLCOLOR_STATIC 6 #define CTLCOLOR_MAX 7 #define COLOR_SCROLLBAR 0 #define COLOR_BACKGROUND 1 #define COLOR_ACTIVECAPTION 2 #define COLOR_INACTIVECAPTION 3 #define COLOR_MENU 4 #define COLOR_WINDOW 5 #define COLOR_WINDOWFRAME 6 #define COLOR_MENUTEXT 7 #define COLOR_WINDOWTEXT 8 #define COLOR_CAPTIONTEXT 9 #define COLOR_ACTIVEBORDER 10 #define COLOR_INACTIVEBORDER 11 #define COLOR_APPWORKSPACE 12 #define COLOR_HIGHLIGHT 13 #define COLOR_HIGHLIGHTTEXT 14 #define COLOR_BTNFACE 15 #define COLOR_BTNSHADOW 16 #define COLOR_GRAYTEXT 17 #define COLOR_BTNTEXT 18 #define COLOR_INACTIVECAPTIONTEXT 19 #define COLOR_BTNHIGHLIGHT 20 #define COLOR_3DDKSHADOW 21 #define COLOR_3DLIGHT 22 #define COLOR_INFOTEXT 23 #define COLOR_INFOBK 24 #define COLOR_HOTLIGHT 26 #define COLOR_GRADIENTACTIVECAPTION 27 #define COLOR_GRADIENTINACTIVECAPTION 28 #define COLOR_MENUHILIGHT 29 #define COLOR_MENUBAR 30 #define COLOR_DESKTOP COLOR_BACKGROUND #define COLOR_3DFACE COLOR_BTNFACE #define COLOR_3DSHADOW COLOR_BTNSHADOW #define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT #define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT #define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT /* StretchBlt() Modes */ #define BLACKONWHITE 1 #define WHITEONBLACK 2 #define COLORONCOLOR 3 #define HALFTONE 4 #define MAXSTRETCHBLTMODE 4 #define STRETCH_ANDSCANS BLACKONWHITE #define STRETCH_ORSCANS WHITEONBLACK #define STRETCH_DELETESCANS COLORONCOLOR #define STRETCH_HALFTONE HALFTONE /* Binary raster ops */ #define R2_BLACK 1 /* 0 */ #define R2_NOTMERGEPEN 2 /* DPon */ #define R2_MASKNOTPEN 3 /* DPna */ #define R2_NOTCOPYPEN 4 /* PN */ #define R2_MASKPENNOT 5 /* PDna */ #define R2_NOT 6 /* Dn */ #define R2_XORPEN 7 /* DPx */ #define R2_NOTMASKPEN 8 /* DPan */ #define R2_MASKPEN 9 /* DPa */ #define R2_NOTXORPEN 10 /* DPxn */ #define R2_NOP 11 /* D */ #define R2_MERGENOTPEN 12 /* DPno */ #define R2_COPYPEN 13 /* P */ #define R2_MERGEPENNOT 14 /* PDno */ #define R2_MERGEPEN 15 /* DPo */ #define R2_WHITE 16 /* 1 */ #define R2_LAST 16 /* Brush Styles */ #define BS_SOLID 0 #define BS_NULL 1 #define BS_HOLLOW BS_NULL #define BS_HATCHED 2 #define BS_PATTERN 3 #define BS_INDEXED 4 #define BS_DIBPATTERN 5 #define BS_DIBPATTERNPT 6 #define BS_PATTERN8X8 7 #define BS_DIBPATTERN8X8 8 #define BS_MONOPATTERN 9 /* palette entry flags */ #define PC_RESERVED 0x01 /* palette index used for animation */ #define PC_EXPLICIT 0x02 /* palette index is explicit to device */ #define PC_NOCOLLAPSE 0x04 /* do not match color to system palette */ /* * DrawText() Format Flags */ #define DT_TOP 0x00000000 #define DT_LEFT 0x00000000 #define DT_CENTER 0x00000001 #define DT_RIGHT 0x00000002 #define DT_VCENTER 0x00000004 #define DT_BOTTOM 0x00000008 #define DT_WORDBREAK 0x00000010 #define DT_SINGLELINE 0x00000020 #define DT_EXPANDTABS 0x00000040 #define DT_TABSTOP 0x00000080 #define DT_NOCLIP 0x00000100 #define DT_EXTERNALLEADING 0x00000200 #define DT_CALCRECT 0x00000400 #define DT_NOPREFIX 0x00000800 #define DT_INTERNAL 0x00001000 /* Text Alignment Options */ #define TA_NOUPDATECP 0 #define TA_UPDATECP 1 #define TA_LEFT 0 #define TA_RIGHT 2 #define TA_CENTER 6 #define TA_TOP 0 #define TA_BOTTOM 8 #define TA_BASELINE 24 /* * Menu flags for Add/Check/EnableMenuItem() */ #define MF_INSERT 0x00000000L #define MF_CHANGE 0x00000080L #define MF_APPEND 0x00000100L #define MF_DELETE 0x00000200L #define MF_REMOVE 0x00001000L #define MF_BYCOMMAND 0x00000000L #define MF_BYPOSITION 0x00000400L #define MF_SEPARATOR 0x00000800L #define MF_ENABLED 0x00000000L #define MF_GRAYED 0x00000001L #define MF_DISABLED 0x00000002L #define MF_UNCHECKED 0x00000000L #define MF_CHECKED 0x00000008L #define MF_USECHECKBITMAPS 0x00000200L #define MF_STRING 0x00000000L #define MF_BITMAP 0x00000004L #define MF_OWNERDRAW 0x00000100L #define MF_POPUP 0x00000010L #define MF_MENUBARBREAK 0x00000020L #define MF_MENUBREAK 0x00000040L #define MF_UNHILITE 0x00000000L #define MF_HILITE 0x00000080L // CBrush hatch styles #define HS_HORIZONTAL 0 #define HS_VERTICAL 1 #define HS_FDIAGONAL 2 #define HS_BDIAGONAL 3 #define HS_CROSS 4 #define HS_DIAGCROSS 5 // Constants for the biCompression field #define BI_RGB 0L /* tmPitchAndFamily flags */ #define TMPF_FIXED_PITCH 0x01 #define TMPF_VECTOR 0x02 #define TMPF_DEVICE 0x08 #define TMPF_TRUETYPE 0x04 #define ANSI_CHARSET 0 /* 3D border styles */ #define BDR_RAISEDOUTER 0x0001 #define BDR_SUNKENOUTER 0x0002 #define BDR_RAISEDINNER 0x0004 #define BDR_SUNKENINNER 0x0008 #define BDR_OUTER (BDR_RAISEDOUTER | BDR_SUNKENOUTER) #define BDR_INNER (BDR_RAISEDINNER | BDR_SUNKENINNER) #define BDR_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER) #define BDR_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER) #define EDGE_RAISED (BDR_RAISEDOUTER | BDR_RAISEDINNER) #define EDGE_SUNKEN (BDR_SUNKENOUTER | BDR_SUNKENINNER) #define EDGE_ETCHED (BDR_SUNKENOUTER | BDR_RAISEDINNER) #define EDGE_BUMP (BDR_RAISEDOUTER | BDR_SUNKENINNER) /* Border flags */ #define BF_LEFT 0x0001 #define BF_TOP 0x0002 #define BF_RIGHT 0x0004 #define BF_BOTTOM 0x0008 #define BF_TOPLEFT (BF_TOP | BF_LEFT) #define BF_TOPRIGHT (BF_TOP | BF_RIGHT) #define BF_BOTTOMLEFT (BF_BOTTOM | BF_LEFT) #define BF_BOTTOMRIGHT (BF_BOTTOM | BF_RIGHT) #define BF_RECT (BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM) #define BF_DIAGONAL 0x0010 // For diagonal lines, the BF_RECT flags specify the end point of the // vector bounded by the rectangle parameter. #define BF_DIAGONAL_ENDTOPRIGHT (BF_DIAGONAL | BF_TOP | BF_RIGHT) #define BF_DIAGONAL_ENDTOPLEFT (BF_DIAGONAL | BF_TOP | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMLEFT (BF_DIAGONAL | BF_BOTTOM | BF_LEFT) #define BF_DIAGONAL_ENDBOTTOMRIGHT (BF_DIAGONAL | BF_BOTTOM | BF_RIGHT) #define BF_MIDDLE 0x0800 /* Fill in the middle */ #define BF_SOFT 0x1000 /* For softer buttons */ #define BF_ADJUST 0x2000 /* Calculate the space left over */ #define BF_FLAT 0x4000 /* For flat rather than 3D borders */ #define BF_MONO 0x8000 /* For monochrome borders */ /* * WM_NCHITTEST and MOUSEHOOKSTRUCT Mouse Position Codes */ #define HTERROR (-2) #define HTTRANSPARENT (-1) #define HTNOWHERE 0 #define HTCLIENT 1 #define HTCAPTION 2 #define HTSYSMENU 3 #define HTGROWBOX 4 #define HTSIZE HTGROWBOX #define HTMENU 5 #define HTHSCROLL 6 #define HTVSCROLL 7 #define HTMINBUTTON 8 #define HTMAXBUTTON 9 #define HTLEFT 10 #define HTRIGHT 11 #define HTTOP 12 #define HTTOPLEFT 13 #define HTTOPRIGHT 14 #define HTBOTTOM 15 #define HTBOTTOMLEFT 16 #define HTBOTTOMRIGHT 17 #define HTBORDER 18 #define HTREDUCE HTMINBUTTON #define HTZOOM HTMAXBUTTON #define HTSIZEFIRST HTLEFT #define HTSIZELAST HTBOTTOMRIGHT typedef struct tagBITMAPINFOHEADER { uint32 biSize; long biWidth; long biHeight; uint16 biPlanes; uint16 biBitCount; uint32 biCompression; uint32 biSizeImage; long biXPelsPerMeter; long biYPelsPerMeter; uint32 biClrUsed; uint32 biClrImportant; } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; typedef struct tagRGBQUAD { byte rgbBlue; byte rgbGreen; byte rgbRed; byte rgbReserved; } RGBQUAD; typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[1]; } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; /* Bitmap Header Definition */ typedef struct tagBITMAP { int bmType; int bmWidth; int bmHeight; int bmWidthBytes; uint16 bmPlanes; uint16 bmBitsPixel; void * bmBits; } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; typedef struct tagBITMAPCOREHEADER { uint32 bcSize; /* used to get to color table */ uint16 bcWidth; uint16 bcHeight; uint16 bcPlanes; uint16 bcBitCount; } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; typedef struct tagRGBTRIPLE { byte rgbtBlue; byte rgbtGreen; byte rgbtRed; } RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE; typedef struct tagBITMAPCOREINFO { BITMAPCOREHEADER bmciHeader; RGBTRIPLE bmciColors[1]; } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; typedef struct tagPALETTEENTRY { byte peRed; byte peGreen; byte peBlue; byte peFlags; } PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY; typedef struct tagLOGPALETTE { uint16 palVersion; uint16 palNumEntries; PALETTEENTRY palPalEntry[1]; } LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE; /* * MEASUREITEMSTRUCT for ownerdraw */ typedef struct tagMEASUREITEMSTRUCT { unsigned int CtlType; unsigned int CtlID; unsigned int itemID; unsigned int itemWidth; unsigned int itemHeight; uintptr itemData; } MEASUREITEMSTRUCT, NEAR *PMEASUREITEMSTRUCT, FAR *LPMEASUREITEMSTRUCT; /* * DRAWITEMSTRUCT for ownerdraw */ typedef struct tagDRAWITEMSTRUCT { unsigned int CtlType; unsigned int CtlID; unsigned int itemID; unsigned int itemAction; unsigned int itemState; HWND hwndItem; HDC hDC; RECT rcItem; uintptr itemData; } DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT; /* Logical Brush (or Pattern) */ typedef struct tagLOGBRUSH { unsigned int lbStyle; COLORREF lbColor; uintptr lbHatch; } LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH; extern int GetDeviceCaps(HDC hdc, int index); extern HDC CreateCompatibleDC(HDC hdc); extern int ReleaseDC(HWND hWnd, HDC hDC); extern bool DeleteDC(HDC hdc); extern bool DeleteObject(HGDIOBJ ho); extern HDC GetDC(HWND hWnd); extern int GetObject(HANDLE h, int c, void *pv); extern HDC BeginPaint(HWND hWnd, LPPAINTSTRUCT lpPaint); extern bool EndPaint(HWND hWnd, const PAINTSTRUCT *lpPaint); extern intptr DialogBoxParam(HINSTANCE hInstance, const char *lpTemplateName, HWND hWndParent, DLGPROC lpDialogFunc, LPARAM dwInitParam); extern bool IsWindow(HWND hWnd); extern bool SetWindowText(HWND hWnd, const char *lpszString); extern int GetWindowText(HWND hWnd, char *lpszStringBuf, int nMaxCount); extern bool ScreenToClient(HWND hWnd, LPPOINT lpPoint); HBITMAP CreateDIBitmap(HDC hdc, CONST BITMAPINFOHEADER *pbmih, uint32 flInit, CONST void *pjBits, CONST BITMAPINFO *pbmi, unsigned int iUsage); extern int GetDIBits(HDC hdc, HBITMAP hbm, unsigned int start, unsigned int cLines, void *lpvBits, LPBITMAPINFO lpbmi, unsigned int usage); extern HGDIOBJ SelectObject(HDC hdc, HGDIOBJ h); extern HGDIOBJ GetStockObject(int i); extern HPALETTE SelectPalette(HDC hdc, HPALETTE hPal, bool bForceBkgd); extern unsigned int RealizePalette(HDC hdc); extern bool BitBlt(HDC hdc, int xDest, int yDest, int width, int height, HDC hdcSrc, int xSrc, int ySrc, uint32 rop); extern bool StretchBlt(HDC hdcDest, int xDest, int yDest, int wDest, int hDest, HDC hdcSrc, int xSrc, int ySrc, int wSrc, int hSrc, uint32 rop); extern int SetStretchBltMode(HDC hdc, int mode); extern int StretchDIBits(HDC hdc, int xDest, int yDest, int DestWidth, int DestHeight, int xSrc, int ySrc, int SrcWidth, int SrcHeight, CONST void *lpBits, CONST BITMAPINFO *lpbmi, unsigned int iUsage, uint32 rop); extern int GetTextExtent(HDC hdc, const char *text, size_t len); extern bool GetTextMetrics(HDC hdc, LPTEXTMETRIC lptm); extern intptr GetWindowWord(HWND hWnd, int nIndex); extern int AddFontResource(const char *fontName); extern bool RemoveFontResource(const char *fontName); extern int SetScrollPos(HWND hWnd, int nBar, int nPos, bool bRedraw); extern void SetScrollRange(HWND hWnd, int nBar, int nMinPos, int nMaxPos, bool bRedraw); extern bool ClipCursor(const RECT *lpRect); extern bool GetCursorPos(LPPOINT lpPoint); extern bool SetCursorPos(int x, int y); extern bool SetCapture(HWND hWnd); extern bool ReleaseCapture(); extern HWND GetCapture(); extern HCURSOR LoadCursor(HINSTANCE hInstance, const char *lpCursorName); extern HCURSOR SetCursor(HCURSOR hCursor); extern int ShowCursor(bool bShow); typedef void (CALLBACK *LINEDDAPROC)(int x, int y, CDC *cdc); extern bool LineDDA(int x0, int y0, int x1, int y1, LINEDDAPROC lpProc, CDC *cdc); extern byte GetRValue(COLORREF color); extern byte GetGValue(COLORREF color); extern byte GetBValue(COLORREF color); extern HWND GetDlgItem(HWND hDlg, int nIDDlgItem); extern bool EndDialog(HWND hDlg, intptr nResult); extern bool SetDlgItemInt(HWND hDlg, int nIDDlgItem, unsigned int uValue, bool bSigned); extern bool CheckRadioButton(HWND hDlg, int nIDFirstButton, int nIDLastButton, int nIDCheckButton); extern uint32 GetSysColor(int nIndex); extern HBRUSH GetSysColorBrush(int nIndex); extern bool DestroyMenu(HMENU hMenu); extern void SetActiveWindow(HWND hWnd); } // namespace MFC } // namespace Bagel #endif