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.

539 lines
14 KiB

  1. /*++
  2. Copyright (c) 1999-2001 Microsoft Corporation
  3. All rights reserved.
  4. Module Name:
  5. glvminit.h
  6. Abstract:
  7. Declaration of functions that this plugin supports.
  8. (look in vectorif.h)
  9. Environment:
  10. Windows NT Unidrv driver
  11. Revision History:
  12. 02/29/00 -hsingh-
  13. Created
  14. mm-dd-yy -author-
  15. description
  16. --*/
  17. #ifndef _GLVMINIT_H_
  18. #define _GLVMINIT_H_
  19. #include "vectorc.h"
  20. // extern interface declarations
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. //
  25. // Part. 1
  26. // Functions listed in oemkm.h
  27. //
  28. BOOL
  29. HPGLDriverDMS(
  30. PVOID pdevobj,
  31. PVOID pvBuffer,
  32. DWORD cbSize,
  33. PDWORD pcbNeeded
  34. );
  35. INT
  36. HPGLCommandCallback(
  37. PDEVOBJ pdevobj,
  38. DWORD dwCmdCbID,
  39. DWORD dwCount,
  40. PDWORD pdwParams
  41. );
  42. LONG
  43. HPGLImageProcessing(
  44. PDEVOBJ pdevobj,
  45. PBYTE pSrcBitmap,
  46. PBITMAPINFOHEADER pBitmapInfoHeader,
  47. PBYTE pColorTable,
  48. DWORD dwCallbackID,
  49. PIPPARAMS pIPParams,
  50. OUT PBYTE *ppbResult
  51. );
  52. LONG
  53. HPGLFilterGraphics(
  54. PDEVOBJ pdevobj,
  55. PBYTE pBuf,
  56. DWORD dwLen
  57. );
  58. LONG
  59. HPGLCompression(
  60. PDEVOBJ pdevobj,
  61. PBYTE pInBuf,
  62. PBYTE pOutBuf,
  63. DWORD dwInLen,
  64. DWORD dwOutLen,
  65. INT *piResult
  66. );
  67. LONG
  68. HPGLHalftonePattern(
  69. PDEVOBJ pdevobj,
  70. PBYTE pHTPattern,
  71. DWORD dwHTPatternX,
  72. DWORD dwHTPatternY,
  73. DWORD dwHTNumPatterns,
  74. DWORD dwCallbackID,
  75. PBYTE pResource,
  76. DWORD dwResourceSize
  77. );
  78. LONG
  79. HPGLMemoryUsage(
  80. PDEVOBJ pdevobj,
  81. POEMMEMORYUSAGE pMemoryUsage
  82. );
  83. LONG
  84. HPGLTTYGetInfo(
  85. PDEVOBJ pdevobj,
  86. DWORD dwInfoIndex,
  87. PVOID pOutputBuf,
  88. DWORD dwSize,
  89. DWORD *pcbcNeeded
  90. );
  91. LONG
  92. HPGLDownloadFontHeader(
  93. PDEVOBJ pdevobj,
  94. PUNIFONTOBJ pUFObj,
  95. OUT DWORD *pdwResult
  96. );
  97. LONG
  98. HPGLDownloadCharGlyph(
  99. PDEVOBJ pdevobj,
  100. PUNIFONTOBJ pUFObj,
  101. HGLYPH hGlyph,
  102. PDWORD pdwWidth,
  103. OUT DWORD *pdwResult
  104. );
  105. LONG
  106. HPGLTTDownloadMethod(
  107. PDEVOBJ pdevobj,
  108. PUNIFONTOBJ pUFObj,
  109. OUT DWORD *pdwResult
  110. );
  111. LONG
  112. HPGLOutputCharStr(
  113. PDEVOBJ pdevobj,
  114. PUNIFONTOBJ pUFObj,
  115. DWORD dwType,
  116. DWORD dwCount,
  117. PVOID pGlyph
  118. );
  119. LONG
  120. HPGLSendFontCmd(
  121. PDEVOBJ pdevobj,
  122. PUNIFONTOBJ pUFObj,
  123. PFINVOCATION pFInv
  124. );
  125. BOOL
  126. HPGLTextOutAsBitmap(
  127. SURFOBJ *pso,
  128. STROBJ *pstro,
  129. FONTOBJ *pfo,
  130. CLIPOBJ *pco,
  131. RECTL *prclExtra,
  132. RECTL *prclOpaque,
  133. BRUSHOBJ *pboFore,
  134. BRUSHOBJ *pboOpaque,
  135. POINTL *pptlOrg,
  136. MIX mix
  137. );
  138. //
  139. // Part 2.
  140. // Functions listed in enable.c
  141. // The order of functions listed is same as the order in
  142. // static DRVFN UniDriverFuncs[] in unidrv2\control\enable.c
  143. //
  144. PDEVOEM APIENTRY
  145. HPGLEnablePDEV(
  146. PDEVOBJ pdevobj,
  147. PWSTR pPrinterName,
  148. ULONG cPatterns,
  149. HSURF *phsurfPatterns,
  150. ULONG cjGdiInfo,
  151. GDIINFO *pGdiInfo,
  152. ULONG cjDevInfo,
  153. DEVINFO *pDevInfo,
  154. DRVENABLEDATA *pded
  155. );
  156. BOOL
  157. HPGLResetPDEV(
  158. PDEVOBJ pPDevOld,
  159. PDEVOBJ pPDevNew
  160. );
  161. VOID
  162. HPGLCompletePDEV(
  163. DHPDEV dhpdev,
  164. HDEV hdev
  165. );
  166. VOID
  167. HPGLDisablePDEV(
  168. PDEVOBJ pPDev
  169. );
  170. BOOL
  171. HPGLEnableSurface(
  172. PDEVOBJ pPDev
  173. );
  174. VOID
  175. HPGLDisableSurface(
  176. PDEVOBJ pPDev
  177. );
  178. VOID
  179. HPGLDisableDriver(
  180. VOID
  181. );
  182. BOOL
  183. HPGLStartDoc(
  184. SURFOBJ *pso,
  185. PWSTR pDocName,
  186. DWORD jobId
  187. );
  188. BOOL
  189. HPGLStartPage(
  190. SURFOBJ *pso
  191. );
  192. BOOL
  193. HPGLSendPage(
  194. SURFOBJ *pso
  195. );
  196. BOOL
  197. HPGLEndDoc(
  198. SURFOBJ *pso,
  199. FLONG flags
  200. );
  201. BOOL
  202. HPGLStartBanding(
  203. SURFOBJ *pso,
  204. POINTL *pptl
  205. );
  206. BOOL
  207. HPGLNextBand(
  208. SURFOBJ *pso,
  209. POINTL *pptl
  210. );
  211. BOOL
  212. HPGLPaint(
  213. SURFOBJ *pso,
  214. CLIPOBJ *pco,
  215. BRUSHOBJ *pbo,
  216. POINTL *pptlBrushOrg,
  217. MIX mix
  218. );
  219. BOOL
  220. HPGLBitBlt(
  221. SURFOBJ *psoTrg,
  222. SURFOBJ *psoSrc,
  223. SURFOBJ *psoMask,
  224. CLIPOBJ *pco,
  225. XLATEOBJ *pxlo,
  226. RECTL *prclTrg,
  227. POINTL *pptlSrc,
  228. POINTL *pptlMask,
  229. BRUSHOBJ *pbo,
  230. POINTL *pptlBrush,
  231. ROP4 rop4
  232. );
  233. BOOL
  234. HPGLStretchBlt(
  235. SURFOBJ *psoDst,
  236. SURFOBJ *psoSrc,
  237. SURFOBJ *psoMask,
  238. CLIPOBJ *pco,
  239. XLATEOBJ *pxlo,
  240. COLORADJUSTMENT *pca,
  241. POINTL *pptlHTOrg,
  242. RECTL *prclDst,
  243. RECTL *prclSrc,
  244. POINTL *pptlMask,
  245. ULONG iMode
  246. );
  247. #ifndef WINNT_40
  248. BOOL
  249. HPGLStretchBltROP(
  250. SURFOBJ *psoDst,
  251. SURFOBJ *psoSrc,
  252. SURFOBJ *psoMask,
  253. CLIPOBJ *pco,
  254. XLATEOBJ *pxlo,
  255. COLORADJUSTMENT *pca,
  256. POINTL *pptlHTOrg,
  257. RECTL *prclDst,
  258. RECTL *prclSrc,
  259. POINTL *pptlMask,
  260. ULONG iMode,
  261. BRUSHOBJ *pbo,
  262. DWORD rop4
  263. );
  264. BOOL
  265. HPGLPlgBlt(
  266. SURFOBJ *psoDst,
  267. SURFOBJ *psoSrc,
  268. SURFOBJ *psoMask,
  269. CLIPOBJ *pco,
  270. XLATEOBJ *pxlo,
  271. COLORADJUSTMENT *pca,
  272. POINTL *pptlBrushOrg,
  273. POINTFIX *pptfixDest,
  274. RECTL *prclSrc,
  275. POINTL *pptlMask,
  276. ULONG iMode
  277. );
  278. #endif
  279. BOOL
  280. HPGLCopyBits(
  281. SURFOBJ *psoDst,
  282. SURFOBJ *psoSrc,
  283. CLIPOBJ *pco,
  284. XLATEOBJ *pxlo,
  285. RECTL *prclDst,
  286. POINTL *pptlSrc
  287. );
  288. ULONG
  289. HPGLDitherColor(
  290. DHPDEV dhpdev,
  291. ULONG iMode,
  292. ULONG rgbColor,
  293. ULONG *pulDither
  294. );
  295. BOOL
  296. HPGLRealizeBrush(
  297. BRUSHOBJ *pbo,
  298. SURFOBJ *psoTarget,
  299. SURFOBJ *psoPattern,
  300. SURFOBJ *psoMask,
  301. XLATEOBJ *pxlo,
  302. ULONG iHatch
  303. );
  304. BOOL
  305. HPGLLineTo(
  306. SURFOBJ *pso,
  307. CLIPOBJ *pco,
  308. BRUSHOBJ *pbo,
  309. LONG x1,
  310. LONG y1,
  311. LONG x2,
  312. LONG y2,
  313. RECTL *prclBounds,
  314. MIX mix
  315. );
  316. BOOL
  317. HPGLStrokePath(
  318. SURFOBJ *pso,
  319. PATHOBJ *ppo,
  320. CLIPOBJ *pco,
  321. XFORMOBJ *pxo,
  322. BRUSHOBJ *pbo,
  323. POINTL *pptlBrushOrg,
  324. LINEATTRS *plineattrs,
  325. MIX mix
  326. );
  327. BOOL
  328. HPGLFillPath(
  329. SURFOBJ *pso,
  330. PATHOBJ *ppo,
  331. CLIPOBJ *pco,
  332. BRUSHOBJ *pbo,
  333. POINTL *pptlBrushOrg,
  334. MIX mix,
  335. FLONG flOptions
  336. );
  337. BOOL
  338. HPGLStrokeAndFillPath(
  339. SURFOBJ *pso,
  340. PATHOBJ *ppo,
  341. CLIPOBJ *pco,
  342. XFORMOBJ *pxo,
  343. BRUSHOBJ *pboStroke,
  344. LINEATTRS *plineattrs,
  345. BRUSHOBJ *pboFill,
  346. POINTL *pptlBrushOrg,
  347. MIX mixFill,
  348. FLONG flOptions
  349. );
  350. #ifndef WINNT_40
  351. BOOL
  352. HPGLGradientFill(
  353. SURFOBJ *psoDest,
  354. CLIPOBJ *pco,
  355. XLATEOBJ *pxlo,
  356. TRIVERTEX *pVertex,
  357. ULONG nVertex,
  358. PVOID pMesh,
  359. ULONG nMesh,
  360. RECTL *prclExtents,
  361. POINTL *pptlDitherOrg,
  362. ULONG ulMode
  363. );
  364. BOOL
  365. HPGLAlphaBlend(
  366. SURFOBJ *psoDest,
  367. SURFOBJ *psoSrc,
  368. CLIPOBJ *pco,
  369. XLATEOBJ *pxlo,
  370. RECTL *prclDest,
  371. RECTL *prclSrc,
  372. BLENDOBJ *pBlendObj
  373. );
  374. BOOL
  375. HPGLTransparentBlt(
  376. SURFOBJ *psoDst,
  377. SURFOBJ *psoSrc,
  378. CLIPOBJ *pco,
  379. XLATEOBJ *pxlo,
  380. RECTL *prclDst,
  381. RECTL *prclSrc,
  382. ULONG iTransColor,
  383. ULONG ulReserved
  384. );
  385. #endif
  386. BOOL
  387. HPGLTextOut(
  388. SURFOBJ *pso,
  389. STROBJ *pstro,
  390. FONTOBJ *pfo,
  391. CLIPOBJ *pco,
  392. RECTL *prclExtra,
  393. RECTL *prclOpaque,
  394. BRUSHOBJ *pboFore,
  395. BRUSHOBJ *pboOpaque,
  396. POINTL *pptlOrg,
  397. MIX mix
  398. );
  399. ULONG
  400. HPGLEscape(
  401. SURFOBJ *pso,
  402. ULONG iEsc,
  403. ULONG cjIn,
  404. PVOID pvIn,
  405. ULONG cjOut,
  406. PVOID pvOut
  407. );
  408. PIFIMETRICS
  409. HPGLQueryFont(
  410. DHPDEV dhpdev,
  411. ULONG_PTR iFile,
  412. ULONG iFace,
  413. ULONG_PTR *pid
  414. );
  415. PVOID
  416. HPGLQueryFontTree(
  417. DHPDEV dhpdev,
  418. ULONG_PTR iFile,
  419. ULONG iFace,
  420. ULONG iMode,
  421. ULONG_PTR *pid
  422. );
  423. LONG
  424. HPGLQueryFontData(
  425. DHPDEV dhpdev,
  426. FONTOBJ *pfo,
  427. ULONG iMode,
  428. HGLYPH hg,
  429. GLYPHDATA *pgd,
  430. PVOID pv,
  431. ULONG cjSize
  432. );
  433. ULONG
  434. HPGLGetGlyphMode(
  435. DHPDEV dhpdev,
  436. FONTOBJ *pfo
  437. );
  438. ULONG
  439. HPGLFontManagement(
  440. SURFOBJ *pso,
  441. FONTOBJ *pfo,
  442. ULONG iMode,
  443. ULONG cjIn,
  444. PVOID pvIn,
  445. ULONG cjOut,
  446. PVOID pvOut
  447. );
  448. BOOL
  449. HPGLQueryAdvanceWidths(
  450. DHPDEV dhpdev,
  451. FONTOBJ *pfo,
  452. ULONG iMode,
  453. HGLYPH *phg,
  454. PVOID *pvWidths,
  455. ULONG cGlyphs
  456. );
  457. #ifdef __cplusplus
  458. }
  459. #endif
  460. #endif // !_GLVMINIT_H_