/*++ Copyright (c) 2000 Microsoft Corporation Module Name: xlvminit.h Abstract: Declaration of functions that this plugin supports. (look in vectorif.h) Environment: Windows 2000 Revision History: 02/29/00 -hsingh- Created 03/23/00 Modified for PCL XL --*/ #ifndef _XLVMINIT_H_ #define _XLVMINIT_H_ #include "vectorc.h" // extern interface declarations #ifdef __cplusplus extern "C" { #endif // // Part. 1 // Functions listed in oemkm.h // BOOL APIENTRY PCLXLDriverDMS( PVOID pdevobj, PVOID pvBuffer, DWORD cbSize, PDWORD pcbNeeded ); INT APIENTRY PCLXLCommandCallback( PDEVOBJ pdevobj, DWORD dwCmdCbID, DWORD dwCount, PDWORD pdwParams ); LONG APIENTRY PCLXLImageProcessing( PDEVOBJ pdevobj, PBYTE pSrcBitmap, PBITMAPINFOHEADER pBitmapInfoHeader, PBYTE pColorTable, DWORD dwCallbackID, PIPPARAMS pIPParams, OUT PBYTE *ppbResult ); LONG APIENTRY PCLXLFilterGraphics( PDEVOBJ pdevobj, PBYTE pBuf, DWORD dwLen ); LONG APIENTRY PCLXLCompression( PDEVOBJ pdevobj, PBYTE pInBuf, PBYTE pOutBuf, DWORD dwInLen, DWORD dwOutLen, INT *piResult ); LONG APIENTRY PCLXLHalftonePattern( PDEVOBJ pdevobj, PBYTE pHTPattern, DWORD dwHTPatternX, DWORD dwHTPatternY, DWORD dwHTNumPatterns, DWORD dwCallbackID, PBYTE pResource, DWORD dwResourceSize ); LONG APIENTRY PCLXLMemoryUsage( PDEVOBJ pdevobj, POEMMEMORYUSAGE pMemoryUsage ); LONG APIENTRY PCLXLTTYGetInfo( PDEVOBJ pdevobj, DWORD dwInfoIndex, PVOID pOutputBuf, DWORD dwSize, DWORD *pcbcNeeded ); LONG APIENTRY PCLXLDownloadFontHeader( PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, OUT DWORD *pdwResult ); LONG APIENTRY PCLXLDownloadCharGlyph( PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, HGLYPH hGlyph, PDWORD pdwWidth, OUT DWORD *pdwResult ); LONG APIENTRY PCLXLTTDownloadMethod( PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, OUT DWORD *pdwResult ); LONG APIENTRY PCLXLOutputCharStr( PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, DWORD dwType, DWORD dwCount, PVOID pGlyph ); LONG APIENTRY PCLXLSendFontCmd( PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, PFINVOCATION pFInv ); BOOL APIENTRY PCLXLTextOutAsBitmap( SURFOBJ *pso, STROBJ *pstro, FONTOBJ *pfo, CLIPOBJ *pco, RECTL *prclExtra, RECTL *prclOpaque, BRUSHOBJ *pboFore, BRUSHOBJ *pboOpaque, POINTL *pptlOrg, MIX mix ); // // Part 2. // Functions listed in enable.c // The order of functions listed is same as the order in // static DRVFN UniDriverFuncs[] in unidrv2\control\enable.c // PDEVOEM APIENTRY PCLXLEnablePDEV( PDEVOBJ pdevobj, PWSTR pPrinterName, ULONG cPatterns, HSURF *phsurfPatterns, ULONG cjGdiInfo, GDIINFO *pGdiInfo, ULONG cjDevInfo, DEVINFO *pDevInfo, DRVENABLEDATA *pded ); BOOL APIENTRY PCLXLResetPDEV( PDEVOBJ pPDevOld, PDEVOBJ pPDevNew ); VOID APIENTRY PCLXLCompletePDEV( DHPDEV dhpdev, HDEV hdev ); VOID APIENTRY PCLXLDisablePDEV( PDEVOBJ pPDev ); BOOL APIENTRY PCLXLEnableSurface( PDEVOBJ pPDev ); VOID APIENTRY PCLXLDisableSurface( PDEVOBJ pPDev ); VOID APIENTRY PCLXLDisableDriver( VOID ); BOOL APIENTRY PCLXLStartDoc( SURFOBJ *pso, PWSTR pDocName, DWORD jobId ); BOOL APIENTRY PCLXLStartPage( SURFOBJ *pso ); BOOL APIENTRY PCLXLSendPage( SURFOBJ *pso ); BOOL APIENTRY PCLXLEndDoc( SURFOBJ *pso, FLONG flags ); BOOL APIENTRY PCLXLStartBanding( SURFOBJ *pso, POINTL *pptl ); BOOL APIENTRY PCLXLNextBand( SURFOBJ *pso, POINTL *pptl ); BOOL APIENTRY PCLXLPaint( SURFOBJ *pso, CLIPOBJ *pco, BRUSHOBJ *pbo, POINTL *pptlBrushOrg, MIX mix ); BOOL APIENTRY PCLXLBitBlt( SURFOBJ *psoTrg, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclTrg, POINTL *pptlSrc, POINTL *pptlMask, BRUSHOBJ *pbo, POINTL *pptlBrush, ROP4 rop4 ); BOOL APIENTRY PCLXLStretchBlt( SURFOBJ *psoDst, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, COLORADJUSTMENT *pca, POINTL *pptlHTOrg, RECTL *prclDst, RECTL *prclSrc, POINTL *pptlMask, ULONG iMode ); BOOL APIENTRY PCLXLStretchBltROP( SURFOBJ *psoDst, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, COLORADJUSTMENT *pca, POINTL *pptlHTOrg, RECTL *prclDst, RECTL *prclSrc, POINTL *pptlMask, ULONG iMode, BRUSHOBJ *pbo, DWORD rop4 ); BOOL APIENTRY PCLXLPlgBlt( SURFOBJ *psoDst, SURFOBJ *psoSrc, SURFOBJ *psoMask, CLIPOBJ *pco, XLATEOBJ *pxlo, COLORADJUSTMENT *pca, POINTL *pptlBrushOrg, POINTFIX *pptfixDest, RECTL *prclSrc, POINTL *pptlMask, ULONG iMode ); BOOL APIENTRY PCLXLCopyBits( SURFOBJ *psoDst, SURFOBJ *psoSrc, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclDst, POINTL *pptlSrc ); ULONG APIENTRY PCLXLDitherColor( DHPDEV dhpdev, ULONG iMode, ULONG rgbColor, ULONG *pulDither ); BOOL APIENTRY PCLXLRealizeBrush( BRUSHOBJ *pbo, SURFOBJ *psoTarget, SURFOBJ *psoPattern, SURFOBJ *psoMask, XLATEOBJ *pxlo, ULONG iHatch ); BOOL APIENTRY PCLXLLineTo( SURFOBJ *pso, CLIPOBJ *pco, BRUSHOBJ *pbo, LONG x1, LONG y1, LONG x2, LONG y2, RECTL *prclBounds, MIX mix ); BOOL APIENTRY PCLXLStrokePath( SURFOBJ *pso, PATHOBJ *ppo, CLIPOBJ *pco, XFORMOBJ *pxo, BRUSHOBJ *pbo, POINTL *pptlBrushOrg, LINEATTRS *plineattrs, MIX mix ); BOOL APIENTRY PCLXLFillPath( SURFOBJ *pso, PATHOBJ *ppo, CLIPOBJ *pco, BRUSHOBJ *pbo, POINTL *pptlBrushOrg, MIX mix, FLONG flOptions ); BOOL APIENTRY PCLXLStrokeAndFillPath( SURFOBJ *pso, PATHOBJ *ppo, CLIPOBJ *pco, XFORMOBJ *pxo, BRUSHOBJ *pboStroke, LINEATTRS *plineattrs, BRUSHOBJ *pboFill, POINTL *pptlBrushOrg, MIX mixFill, FLONG flOptions ); BOOL APIENTRY PCLXLGradientFill( SURFOBJ *psoDest, CLIPOBJ *pco, XLATEOBJ *pxlo, TRIVERTEX *pVertex, ULONG nVertex, PVOID pMesh, ULONG nMesh, RECTL *prclExtents, POINTL *pptlDitherOrg, ULONG ulMode ); BOOL APIENTRY PCLXLAlphaBlend( SURFOBJ *psoDest, SURFOBJ *psoSrc, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclDest, RECTL *prclSrc, BLENDOBJ *pBlendObj ); BOOL APIENTRY PCLXLTransparentBlt( SURFOBJ *psoDst, SURFOBJ *psoSrc, CLIPOBJ *pco, XLATEOBJ *pxlo, RECTL *prclDst, RECTL *prclSrc, ULONG iTransColor, ULONG ulReserved ); BOOL APIENTRY PCLXLTextOut( SURFOBJ *pso, STROBJ *pstro, FONTOBJ *pfo, CLIPOBJ *pco, RECTL *prclExtra, RECTL *prclOpaque, BRUSHOBJ *pboFore, BRUSHOBJ *pboOpaque, POINTL *pptlOrg, MIX mix ); ULONG APIENTRY PCLXLEscape( SURFOBJ *pso, ULONG iEsc, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut ); PIFIMETRICS APIENTRY PCLXLQueryFont( DHPDEV dhpdev, ULONG iFile, ULONG iFace, ULONG *pid ); PVOID APIENTRY PCLXLQueryFontTree( DHPDEV dhpdev, ULONG iFile, ULONG iFace, ULONG iMode, ULONG *pid ); LONG APIENTRY PCLXLQueryFontData( DHPDEV dhpdev, FONTOBJ *pfo, ULONG iMode, HGLYPH hg, GLYPHDATA *pgd, PVOID pv, ULONG cjSize ); ULONG APIENTRY PCLXLGetGlyphMode( DHPDEV dhpdev, FONTOBJ *pfo ); ULONG APIENTRY PCLXLFontManagement( SURFOBJ *pso, FONTOBJ *pfo, ULONG iMode, ULONG cjIn, PVOID pvIn, ULONG cjOut, PVOID pvOut ); BOOL APIENTRY PCLXLQueryAdvanceWidths( DHPDEV dhpdev, FONTOBJ *pfo, ULONG iMode, HGLYPH *phg, PVOID *pvWidths, ULONG cGlyphs ); #ifdef __cplusplus } #endif #endif // !_XLVMINIT_H_