Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

216 lines
3.4 KiB

  1. /*++
  2. Copyright (c) 1996 - 1999 Microsoft Corporation
  3. Module Name:
  4. fontif.h
  5. Abstract:
  6. Interface between Control module and Font module
  7. Environment:
  8. Windows NT Unidrv driver
  9. Revision History:
  10. 10/14/96 -amandan-
  11. Created
  12. dd-mm-yy -author-
  13. description
  14. --*/
  15. #ifndef _FONTIF_H_
  16. #define _FONTIF_H_
  17. #ifdef __cplusplus
  18. extern "C" {
  19. #endif
  20. BOOL
  21. FMInit (
  22. PDEV *pPDev,
  23. DEVINFO *pDevInfo,
  24. GDIINFO *pGDIInfo
  25. );
  26. typedef struct _FMPROCS {
  27. BOOL
  28. (*FMStartDoc) (
  29. SURFOBJ *pso,
  30. PWSTR pDocName,
  31. DWORD jobId
  32. );
  33. BOOL
  34. (*FMStartPage) (
  35. SURFOBJ *pso
  36. );
  37. BOOL
  38. (*FMSendPage)(
  39. SURFOBJ *pso
  40. );
  41. BOOL
  42. (*FMEndDoc)(
  43. SURFOBJ *pso,
  44. FLONG flags
  45. );
  46. BOOL
  47. (*FMNextBand)(
  48. SURFOBJ *pso,
  49. POINTL *pptl
  50. );
  51. BOOL
  52. (*FMStartBanding)(
  53. SURFOBJ *pso,
  54. POINTL *pptl
  55. );
  56. BOOL
  57. (*FMResetPDEV)(
  58. PDEV *pPDevOld,
  59. PDEV *pPDevNew
  60. );
  61. BOOL
  62. (*FMEnableSurface)(
  63. PDEV *pPDev
  64. );
  65. VOID
  66. (*FMDisableSurface)(
  67. PDEV *pPDev
  68. );
  69. VOID
  70. (*FMDisablePDEV)(
  71. PDEV *pPDev
  72. );
  73. BOOL
  74. (*FMTextOut)(
  75. SURFOBJ *pso,
  76. STROBJ *pstro,
  77. FONTOBJ *pfo,
  78. CLIPOBJ *pco,
  79. RECTL *prclExtra,
  80. RECTL *prclOpaque,
  81. BRUSHOBJ *pboFore,
  82. BRUSHOBJ *pboOpaque,
  83. POINTL *pptlOrg,
  84. MIX mix
  85. );
  86. PIFIMETRICS
  87. (*FMQueryFont)(
  88. PDEV *pPDev,
  89. ULONG_PTR iFile,
  90. ULONG iFace,
  91. ULONG_PTR *pid
  92. );
  93. PVOID
  94. (*FMQueryFontTree)(
  95. PDEV *pPDev,
  96. ULONG_PTR iFile,
  97. ULONG iFace,
  98. ULONG iMode,
  99. ULONG_PTR *pid
  100. );
  101. LONG
  102. (*FMQueryFontData)(
  103. PDEV *pPDev,
  104. FONTOBJ *pfo,
  105. ULONG iMode,
  106. HGLYPH hg,
  107. GLYPHDATA *pgd,
  108. PVOID pv,
  109. ULONG cjSize
  110. );
  111. ULONG
  112. (*FMFontManagement)(
  113. SURFOBJ *pso,
  114. FONTOBJ *pfo,
  115. ULONG iMode,
  116. ULONG cjIn,
  117. PVOID pvIn,
  118. ULONG cjOut,
  119. PVOID pvOut
  120. );
  121. BOOL
  122. (*FMQueryAdvanceWidths)(
  123. PDEV *pPDev,
  124. FONTOBJ *pfo,
  125. ULONG iMode,
  126. HGLYPH *phg,
  127. PVOID *pvWidths,
  128. ULONG cGlyphs
  129. );
  130. ULONG
  131. (*FMGetGlyphMode)(
  132. PDEV *pPDev,
  133. FONTOBJ *pfo
  134. );
  135. }FMPROCS, * PFMPROCS;
  136. /* Font Interface functions for Raster Module */
  137. INT
  138. ILookAheadMax(
  139. PDEV *pPDev,
  140. INT iyVal,
  141. INT iLookAhead
  142. );
  143. BOOL
  144. BDelayGlyphOut(
  145. PDEV *pPDev,
  146. INT yPos
  147. );
  148. VOID
  149. VResetFont(
  150. PDEV *pPDev
  151. );
  152. /* Font Interface functions for OEM Module */
  153. BOOL
  154. FMTextOut(
  155. SURFOBJ *pso,
  156. STROBJ *pstro,
  157. FONTOBJ *pfo,
  158. CLIPOBJ *pco,
  159. RECTL *prclExtra,
  160. RECTL *prclOpaque,
  161. BRUSHOBJ *pboFore,
  162. BRUSHOBJ *pboOpaque,
  163. POINTL *pptlBrushOrg,
  164. MIX mix
  165. );
  166. #ifdef __cplusplus
  167. }
  168. #endif
  169. #endif // !_FONTIF_H_