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.

532 lines
14 KiB

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