1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
|
/*********************************************************************\
* Module Name: 32FDSTRC.H
*
* OS/2 Intelligent Font Interface
*
* Copyright (c) 1989,1994 IBM Corporation
* Copyright (c) 1989 Microsoft Corporation
*
\*********************************************************************/
#ifndef __32FDSTRC_H__
#define __32FDSTRC_H__
#define FACESIZE 32
#define GLYPHNAMESIZE 16
/* Error codes defined to be returned by IFI */
/* NOTE: The actual values are subject to change */
/*#define PMERR_BUFFER_TOO_SMALL 23003L*/
#define PMERR_FACENAME_NOT_FOUND 23004L
#define PMERR_FD_ALREADY_INSTALLED 23005L
#define PMERR_INVALID_CONTEXTINFO 23006L
#define PMERR_NOT_A_FONT_FILE 23007L
#define PMERR_INVALID_FONT_SELECTION 23008L
#define PMERR_INVALID_FORMAT 23009L
#define PMERR_BUSY_HFC 230010L
#define PMERR_INVALID_HFC 230011L
#define PMERR_INVALID_INDEX 230012L
#define PMERR_INVALID_QUERY_TYPE 230013L
#define PMERR_CONTEXT_NOT_SET 230014L
/* Query faces subfunction */
#define FD_QUERY_CONTEXTMETRICS 1L
#define FD_QUERY_ABC_WIDTHS 2L
#define FD_QUERY_KERNINGPAIRS 3L
/* Query char subfunction */
#define FD_QUERY_CHARIMAGE 1L
#define FD_QUERY_OUTLINE 2L
#define FD_QUERY_BITMAPMETRICS 4L
#define FD_CHARATTR_ALIGNED_8 0x00000001
#define FD_CHARATTR_ALIGNED_16 0x00000002
#define FD_CHARATTR_ALIGNED_32 0x00000004
#define FD_CHARATTR_NO_CACHE 0x00000010
typedef struct _ABC_TRIPLETS /*abc*/
{
LONG lA;
ULONG ulB;
LONG lC;
} ABC_TRIPLETS;
typedef ABC_TRIPLETS *PABC_TRIPLETS;
// THIS STRUCTURE NOW RESIDES IN PMDDI.H FOR CRUISER WORLD
// BUT IFI FONT DRIVER DOES NOT INCLUDE PMDDI.H
#ifndef INCL_IFI
typedef struct _POINTFX { /* ptfx */
FIXED x;
FIXED y;
} POINTFX;
typedef POINTFX *PPOINTFX;
#endif
typedef struct _BITMAPMETRICS /* bmm */
{
SIZEL sizlExtent;
ULONG cyAscent;
#ifdef OLD_DRIVER
POINTFX *ppfxOrigin; /* Return character origin. */
#else
POINTFX pfxOrigin; /* Return character origin. */
#endif
} BITMAPMETRICS;
typedef BITMAPMETRICS *PBITMAPMETRICS;
typedef struct _MAT2 /* mat */
{
FIXED eM11;
FIXED eM12;
FIXED eM21;
FIXED eM22;
} MAT2;
typedef struct _FD_KERNINGPAIRS /* krnpr */
{
GLYPH giFirst;
GLYPH giSecond;
LONG eKerningAmount;
} FD_KERNINGPAIRS;
typedef struct _CONTEXTINFO /* ci */
{
ULONG cb; /* Length in bytes of this structure. */
ULONG fl; /* Flags. */
SIZEL sizlPPM; /* Device resolution in pels/meter. */
POINTFX pfxSpot; /* Spot size in pels. */
MAT2 matXform; /* Notional to Device transform. */
} CONTEXTINFO;
typedef CONTEXTINFO *PCONTEXTINFO;
typedef struct _CHARATTR /* ca */
{
ULONG cb;
ULONG iQuery; /* Query type. */
GLYPH gi; /* Glyph index in font. */
PBYTE pBuffer; /* Bitmap buffer. */
ULONG cbLen; /* Size of buffer in bytes. */
} CHARATTR;
typedef CHARATTR *PCHARATTR;
typedef struct _CHARATTR2 /* ca2 */
{
ULONG cb;
ULONG iQuery; /* Query type. */
GLYPH gi; /* Glyph index in font. */
PBYTE pBuffer; /* Bitmap buffer. */
ULONG cbLen; /* Size of buffer in bytes. */
ULONG fl; /* Flags */
} CHARATTR2;
typedef CHARATTR2 *PCHARATTR2;
typedef struct _CONTEXTMETRICS
{
SIZEL sizlMax;
ULONG cyMaxAscent;
ULONG cyMaxDescent;
ULONG cxTotal;
ULONG cGlyphs;
} CONTEXTMETRICS;
typedef CONTEXTMETRICS * PCONTEXTMETRICS;
typedef struct _POLYGONHEADER {
ULONG cb;
ULONG iType; /* Must be FD_POLYGON_TYPE */
} POLYGONHEADER;
typedef POLYGONHEADER *PPOLYGONHEADER;
typedef struct _PRIMLINE {
ULONG iType; /* Must be FD_PRIM_LINE */
POINTFX pte;
} PRIMLINE;
typedef PRIMLINE *PPRIMLINE;
typedef struct _PRIMSPLINE {
ULONG iType; /* Must be FD_PRIM_SPLINE */
POINTFX pte[3];
} PRIMSPLINE;
typedef PRIMSPLINE *PPRIMSPLINE;
/*
* The names of these were changed to avoid conflict with PRIM_LINE
* which is defined ion some other header file.
*/
#define FD_POLYGON_TYPE 24
#define FD_PRIM_LINE 1
#define FD_PRIM_SPLINE 3
#endif
|