typedef struct tagEXTTEXTDATA {
short nSize;
LPAPPEXTTEXTDATA lpInData;
LPFONTINFO lpFont;
LPTEXTXFORM lpXForm;
LPDRAWMODE lpDrawMode;
} EXTTEXTDATA;
The EXTTEXTDATA structure contains a complete set of information describing the text to be drawn.
nSize
Specifies the size in bytes of the structure.
lpInData
Points to a 16-bit variable that contains the number of bytes pointed to by the lpOutData parameter in an GETEXTENDEDTEXTMETRICS escape.
lpFont
Points to a FONTINFO structure specifying a physical font. The FONTINFO structure has the following form:
typedef struct tagFONTINFO {
short dfType;
short dfPoints;
short dfVertRes;
short dfHorizRes;
short dfAscent;
short dfInternalLeading;
short dfExternalLeading;
char dfItalic;
char dfUnderline;
char dfStrikeOut;
short dfWeight;
char dfCharSet;
short dfPixWidth;
short dfPixHeight;
char dfPitchAndFamily;
short dfAvgWidth;
short dfMaxWidth;
char dfFirstChar;
char dfLastChar;
char dfDefaultChar;
char dfBreakChar;
short dfWidthBytes;
long dfDevice;
long dfFace;
long dfBitsPointer;
long dfBitsOffset;
char dfReserved;
/* The following fields present only for Windows 3.x fonts */
long dfFlags;
short dfAspace;
short dfBspace;
short dfCspace;
long dfColorPointer;
long dfReserved1[4];
} FONTINFO;
lpXForm
Points to a TEXTXFORM structure specifying additional attributes of the text. The TEXTXFORM structure has the following form:
typedef struct tagTEXTXFORM {
short txfHeight;
short txfWidth;
short txfEscapement;
short txfOrientation;
short txfWeight;
char txfItalic;
char txfUnderline;
char txfStrikeOut;
char txfOutPrecision;
char txfClipPrecision;
short txfAccelerator;
short txfOverhang;
} TEXTXFORM;
lpDrawMode
Points to a DRAWMODE structure specifying information used to draw the text. The DRAWMODE structure has the following form:
typedef struct tagDRAWMODE {
short Rop2; /*binary-raster operations*/
short bkMode; /*background mode*/
PCOLOR bkColor; /*physical background color*/
PCOLOR TextColor; /*physical text (foreground) color*/
short TBreakExtra;/*number of extra pixels to add to line*/
short BreakExtra; /*pixels per break: TBreakExtra/BreakCount*/
short BreakErr; /*running error term*/
short BreakRem; /*remaining pixels: TBreakExtra%BreakCount*/
short BreakCount; /*number of breaks in the line*/
short CharExtra; /*extra pixels for each character*/
COLORREF LbkColor; /*logical background color*/
COLORREF LTextColor; /*logical text (foreground) color*/
} DRAWMODE;