ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

prntfont.h
Go to the documentation of this file.
00001 /*
00002  * prntfont.h
00003  *
00004  * Declarations for Windows NT printer driver font metrics
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Filip Navara <xnavara@volny.cz>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef __PRNTFONT_H
00024 #define __PRNTFONT_H
00025 
00026 #define UNIFM_VERSION_1_0       0x10000
00027 #define UNI_GLYPHSETDATA_VERSION_1_0    0x10000
00028 
00029 #define UFM_SOFT    1
00030 #define UFM_CART        2
00031 #define UFM_SCALABLE    4
00032 
00033 #define DF_TYPE_HPINTELLIFONT   0
00034 #define DF_TYPE_TRUETYPE    1
00035 #define DF_TYPE_PST1        2
00036 #define DF_TYPE_CAPSL       3
00037 #define DF_TYPE_OEM1        4
00038 #define DF_TYPE_OEM2        5
00039 #define DF_NOITALIC     1
00040 #define DF_NOUNDER      2
00041 #define DF_XM_CR        4
00042 #define DF_NO_BOLD      8
00043 #define DF_NO_DOUBLE_UNDERLINE  16
00044 #define DF_NO_STRIKETHRU    32
00045 #define DF_BKSP_OK      64
00046 
00047 #define MTYPE_COMPOSE           1
00048 #define MTYPE_DIRECT            2
00049 #define MTYPE_PAIRED            4
00050 #define MTYPE_FORMAT_MASK       7
00051 #define MTYPE_SINGLE            8
00052 #define MTYPE_DOUBLE            16
00053 #define MTYPE_DOUBLEBYTECHAR_MASK   24
00054 #define MTYPE_REPLACE           32
00055 #define MTYPE_ADD           64
00056 #define MTYPE_DISABLE           128
00057 #define MTYPE_PREDEFIN_MASK     192
00058 
00059 #define CC_NOPRECNV 0x0000FFFF
00060 #define CC_DEFAULT  0
00061 #define CC_CP437    -1
00062 #define CC_CP850    -2
00063 #define CC_CP863    -3
00064 #define CC_BIG5     -10
00065 #define CC_ISC      -11
00066 #define CC_JIS      -12
00067 #define CC_JIS_ANK  -13
00068 #define CC_NS86     -14
00069 #define CC_TCA      -15
00070 #define CC_GB2312   -16
00071 #define CC_SJIS     -17
00072 #define CC_WANSUNG  -18
00073 
00074 #define UFF_FILE_MAGIC      'UFF1'
00075 #define UFF_VERSION_NUMBER  0x10001
00076 #define FONT_DIR_SORTED     1
00077 #define FONT_REC_SIG            'CERF'
00078 #define WINNT_INSTALLER_SIG     'IFTN'
00079 
00080 #define FONT_FL_UFM             0x0001
00081 #define FONT_FL_IFI             0x0002
00082 #define FONT_FL_SOFTFONT        0x0004
00083 #define FONT_FL_PERMANENT_SF    0x0008
00084 #define FONT_FL_DEVICEFONT      0x0010
00085 #define FONT_FL_GLYPHSET_GTT    0x0020
00086 #define FONT_FL_GLYPHSET_RLE    0x0040
00087 #define FONT_FL_RESERVED        0x8000
00088 
00089 #define DATA_UFM_SIG        'MFUD'
00090 #define DATA_IFI_SIG        'IFID'
00091 #define DATA_GTT_SIG        'TTGD'
00092 #define DATA_CTT_SIG        'TTCD'
00093 #define DATA_VAR_SIG        'RAVD'
00094 
00095 #define FG_CANCHANGE    128
00096 #define WM_FI_FILENAME  900
00097 
00098 #define GET_UNIDRVINFO(pUFM) ((PUNIDRVINFO)((ULONG_PTR)(pUFM) + (pUFM)->loUnidrvInfo))
00099 #define GET_IFIMETRICS(pUFM) ((IFIMETRICS*)((ULONG_PTR)(pUFM) + (pUFM)->loIFIMetrics))
00100 #define GET_EXTTEXTMETRIC(pUFM) ((EXTTEXTMETRIC*)((ULONG_PTR)(pUFM) + (pUFM)->loExtTextMetric))
00101 #define GET_WIDTHTABLE(pUFM) ((PWIDTHTABLE)((ULONG_PTR)(pUFM) + (pUFM)->loWidthTable))
00102 #define GET_KERNDATA(pUFM) ((PKERNDATA)((ULONG_PTR)(pUFM) + (pUFM)->loKernPair))
00103 #define GET_SELECT_CMD(pUni) ((PCHAR)(pUni) + (pUni)->SelectFont.loOffset)
00104 #define GET_UNSELECT_CMD(pUni) ((PCHAR)(pUni) + (pUni)->UnSelectFont.loOffset)
00105 #define GET_GLYPHRUN(pGTT) ((PGLYPHRUN)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loRunOffset))
00106 #define GET_CODEPAGEINFO(pGTT) ((PUNI_CODEPAGEINFO)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loCodePageOffset))
00107 #define GET_MAPTABLE(pGTT) ((PMAPTABLE)((ULONG_PTR)(pGTT) + ((PUNI_GLYPHSETDATA)pGTT)->loMapTableOffset))
00108 
00109 typedef struct _UNIFM_HDR
00110 {
00111   DWORD  dwSize;
00112   DWORD  dwVersion;
00113   ULONG  ulDefaultCodepage;
00114   LONG  lGlyphSetDataRCID;
00115   DWORD  loUnidrvInfo;
00116   DWORD  loIFIMetrics;
00117   DWORD  loExtTextMetric;
00118   DWORD  loWidthTable;
00119   DWORD  loKernPair;
00120   DWORD  dwReserved[2];
00121 } UNIFM_HDR, *PUNIFM_HDR;
00122 
00123 typedef struct _INVOC
00124 {
00125   DWORD  dwCount;
00126   DWORD  loOffset;
00127 } INVOC, *PINVOC;
00128 
00129 typedef struct _UNIDRVINFO
00130 {
00131   DWORD  dwSize;
00132   DWORD  flGenFlags;
00133   WORD  wType;
00134   WORD  fCaps;
00135   WORD  wXRes;
00136   WORD  wYRes;
00137   SHORT  sYAdjust;
00138   SHORT  sYMoved;
00139   WORD  wPrivateData;
00140   SHORT  sShift;
00141   INVOC  SelectFont;
00142   INVOC  UnSelectFont;
00143   WORD  wReserved[4];
00144 } UNIDRVINFO, *PUNIDRVINFO;
00145 
00146 typedef struct _EXTTEXTMETRIC
00147 {
00148   SHORT  emSize;
00149   SHORT  emPointSize;
00150   SHORT  emOrientation;
00151   SHORT  emMasterHeight;
00152   SHORT  emMinScale;
00153   SHORT  emMaxScale;
00154   SHORT  emMasterUnits;
00155   SHORT  emCapHeight;
00156   SHORT  emXHeight;
00157   SHORT  emLowerCaseAscent;
00158   SHORT  emLowerCaseDescent;
00159   SHORT  emSlant;
00160   SHORT  emSuperScript;
00161   SHORT  emSubScript;
00162   SHORT  emSuperScriptSize;
00163   SHORT  emSubScriptSize;
00164   SHORT  emUnderlineOffset;
00165   SHORT  emUnderlineWidth;
00166   SHORT  emDoubleUpperUnderlineOffset;
00167   SHORT  emDoubleLowerUnderlineOffset;
00168   SHORT  emDoubleUpperUnderlineWidth;
00169   SHORT  emDoubleLowerUnderlineWidth;
00170   SHORT  emStrikeOutOffset;
00171   SHORT  emStrikeOutWidth;
00172   WORD  emKernPairs;
00173   WORD  emKernTracks;
00174 } EXTTEXTMETRIC, *PEXTTEXTMETRIC;
00175 
00176 typedef struct _WIDTHRUN
00177 {
00178   WORD  wStartGlyph;
00179   WORD  wGlyphCount;
00180   DWORD  loCharWidthOffset;
00181 } WIDTHRUN, *PWIDTHRUN;
00182 
00183 typedef struct _WIDTHTABLE
00184 {
00185   DWORD  dwSize;
00186   DWORD  dwRunNum;
00187   WIDTHRUN  WidthRun[1];
00188 } WIDTHTABLE, *PWIDTHTABLE;
00189 
00190 typedef struct _KERNDATA
00191 {
00192   DWORD  dwSize;
00193   DWORD  dwKernPairNum;
00194   FD_KERNINGPAIR  KernPair[1];
00195 } KERNDATA, *PKERNDATA;
00196 
00197 typedef struct _UNI_GLYPHSETDATA
00198 {
00199   DWORD  dwSize;
00200   DWORD  dwVersion;
00201   DWORD  dwFlags;
00202   LONG  lPredefinedID;
00203   DWORD  dwGlyphCount;
00204   DWORD  dwRunCount;
00205   DWORD  loRunOffset;
00206   DWORD  dwCodePageCount;
00207   DWORD  loCodePageOffset;
00208   DWORD  loMapTableOffset;
00209   DWORD  dwReserved[2];
00210 } UNI_GLYPHSETDATA, *PUNI_GLYPHSETDATA;
00211 
00212 typedef struct _UNI_CODEPAGEINFO
00213 {
00214   DWORD  dwCodePage;
00215   INVOC  SelectSymbolSet;
00216   INVOC  UnSelectSymbolSet;
00217 } UNI_CODEPAGEINFO, *PUNI_CODEPAGEINFO;
00218 
00219 typedef struct _GLYPHRUN
00220 {
00221   WCHAR  wcLow;
00222   WORD  wGlyphCount;
00223 } GLYPHRUN, *PGLYPHRUN;
00224 
00225 typedef struct _TRANSDATA
00226 {
00227   BYTE  ubCodePageID;
00228   BYTE  ubType;
00229   union
00230   {
00231     SHORT  sCode;
00232     BYTE  ubCode;
00233     BYTE  ubPairs[2];
00234   } uCode;
00235 } TRANSDATA, *PTRANSDATA;
00236 
00237 typedef struct _MAPTABLE {
00238   DWORD  dwSize;
00239   DWORD  dwGlyphNum;
00240   TRANSDATA  Trans[1];
00241 } MAPTABLE, *PMAPTABLE;
00242 
00243 typedef struct _UFF_FILEHEADER {
00244   DWORD  dwSignature;
00245   DWORD  dwVersion;
00246   DWORD  dwSize;
00247   DWORD  nFonts;
00248   DWORD  nGlyphSets;
00249   DWORD  nVarData;
00250   DWORD  offFontDir;
00251   DWORD  dwFlags;
00252   DWORD  dwReserved[4];
00253 } UFF_FILEHEADER, *PUFF_FILEHEADER;
00254 
00255 typedef struct _UFF_FONTDIRECTORY {
00256   DWORD  dwSignature;
00257   WORD  wSize;
00258   WORD  wFontID;
00259   SHORT  sGlyphID;
00260   WORD  wFlags;
00261   DWORD  dwInstallerSig;
00262   DWORD  offFontName;
00263   DWORD  offCartridgeName;
00264   DWORD  offFontData;
00265   DWORD  offGlyphData;
00266   DWORD  offVarData;
00267 } UFF_FONTDIRECTORY, *PUFF_FONTDIRECTORY;
00268 
00269 typedef struct _DATA_HEADER {
00270   DWORD  dwSignature;
00271   WORD  wSize;
00272   WORD  wDataID;
00273   DWORD  dwDataSize;
00274   DWORD  dwReserved;
00275 } DATA_HEADER, *PDATA_HEADER;
00276 
00277 typedef struct _OEMFONTINSTPARAM {
00278   DWORD  cbSize;
00279   HANDLE  hPrinter;
00280   HANDLE  hModule;
00281   HANDLE  hHeap;
00282   DWORD  dwFlags;
00283   PWSTR  pFontInstallerName;
00284 } OEMFONTINSTPARAM, *POEMFONTINSTPARAM;
00285 
00286 #endif /* __PRNTFONT_H */

Generated on Mon May 28 2012 04:32:00 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.