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.
125 lines
4.1 KiB
125 lines
4.1 KiB
#ifndef _PDEV_H
|
|
#define _PDEV_H
|
|
|
|
//
|
|
// Files necessary for OEM plug-in.
|
|
//
|
|
|
|
#include <minidrv.h>
|
|
#include <stdio.h>
|
|
#include <prcomoem.h>
|
|
// NTRAID#NTBUG9-580353-2002/03/18-v-sueyas-: Use strsafe.h
|
|
#include <strsafe.h>
|
|
|
|
//
|
|
// Misc definitions follows.
|
|
//
|
|
|
|
////////////////////////////////////////////////////////
|
|
// OEM UD Defines
|
|
////////////////////////////////////////////////////////
|
|
|
|
#define VALID_PDEVOBJ(pdevobj) \
|
|
((pdevobj) && (pdevobj)->dwSize >= sizeof(DEVOBJ) && \
|
|
(pdevobj)->hEngine && (pdevobj)->hPrinter && \
|
|
(pdevobj)->pPublicDM && (pdevobj)->pDrvProcs )
|
|
|
|
//
|
|
// ASSERT_VALID_PDEVOBJ can be used to verify the passed in "pdevobj". However,
|
|
// it does NOT check "pdevOEM" and "pOEMDM" fields since not all OEM DLL's create
|
|
// their own pdevice structure or need their own private devmode. If a particular
|
|
// OEM DLL does need them, additional checks should be added. For example, if
|
|
// an OEM DLL needs a private pdevice structure, then it should use
|
|
// ASSERT(VALID_PDEVOBJ(pdevobj) && pdevobj->pdevOEM && ...)
|
|
//
|
|
|
|
#define ASSERT_VALID_PDEVOBJ(pdevobj) ASSERT(VALID_PDEVOBJ(pdevobj))
|
|
|
|
////////////////////////////////////////////////////////
|
|
// OEM UD Prototypes
|
|
////////////////////////////////////////////////////////
|
|
|
|
//
|
|
// OEM Signature and version.
|
|
//
|
|
#define OEM_SIGNATURE 'NCDL' // NEC NPDL2 series dll
|
|
#define DLLTEXT(s) "NCDL: " s
|
|
#define OEM_VERSION 0x00010000L
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
// OEM UD Type Defines
|
|
////////////////////////////////////////////////////////
|
|
|
|
typedef struct tag_OEMUD_EXTRADATA {
|
|
OEM_DMEXTRAHEADER dmExtraHdr;
|
|
WORD wRes; // resolution / MasterUnit
|
|
WORD wScale; // The magnification of the font
|
|
LONG lPointsx; // font width
|
|
LONG lPointsy; // font height
|
|
DWORD dwSBCSX; // temp
|
|
DWORD dwDBCSX; // temp
|
|
LONG lSBCSXMove; // SBCS The expectation X movement quantity
|
|
LONG lSBCSYMove; // SBCS The expectation Y movement quantity
|
|
LONG lDBCSXMove; // DBCS The expectation X movement quantity
|
|
LONG lDBCSYMove; // DBCS The expectation Y movement quantity
|
|
LONG lPrevXMove; // The previous X movement quantity
|
|
LONG lPrevYMove; // The previous Y movement quantity
|
|
DWORD fGeneral; // general flag
|
|
WORD wCurrentAddMode; // draw mode
|
|
PBYTE pCompBuf; // buffer for compression
|
|
DWORD dwCompBufLen; // line buffer
|
|
DWORD dwScanLen; // bitmap width
|
|
DWORD dwDeviceDestX; // current X coordinate
|
|
DWORD dwDeviceDestY; // current Y coordinate
|
|
DWORD dwDevicePrevX; // previous X coordinate
|
|
DWORD dwDevicePrevY; // previous Y coordinate
|
|
// #278517: RectFill
|
|
DWORD dwRectWidth; // width for RectFill
|
|
DWORD dwRectHeight; // height for RectFill
|
|
UINT iGray; // rect fill gray scale
|
|
UINT cSubPath; // sub path counter max is 500
|
|
} OEMUD_EXTRADATA, *POEMUD_EXTRADATA;
|
|
|
|
#define MAX_SUBPATH 500
|
|
|
|
// Flags for fGeneral
|
|
#define FG_DBCS 0x00000002
|
|
#define FG_VERT 0x00000004
|
|
#define FG_PLUS 0x00000010
|
|
|
|
#ifdef BYPASS
|
|
#define FG_NO_COMP 0x00000020
|
|
#endif // BYPASS
|
|
|
|
// #278517: RectFill
|
|
#define FG_GMINIT 0x00000040
|
|
|
|
// Flags for Draw Mode
|
|
#define FLAG_RASTER 0 //
|
|
#define FLAG_SBCS 1 // FSa SBCS - FSR
|
|
#define FLAG_DBCS 2 // FSa DBCS - FSR
|
|
#define FLAG_VECTOR 3 // FSY - FSZ
|
|
|
|
#define MASTER_UNIT 1200
|
|
|
|
extern BOOL BInitOEMExtraData(POEMUD_EXTRADATA pOEMExtra);
|
|
extern BMergeOEMExtraData(POEMUD_EXTRADATA pdmIn, POEMUD_EXTRADATA pdmOut);
|
|
|
|
|
|
// NTRAID#NTBUG9-580367-2002/03/18-v-sueyas-: Error handling
|
|
// New interface functions with Unidrv callbacks.
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
BOOL APIENTRY bOEMSendFontCmd(PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, PFINVOCATION pFInv);
|
|
BOOL APIENTRY bOEMOutputCharStr(PDEVOBJ pdevobj, PUNIFONTOBJ pUFObj, DWORD dwType, DWORD dwCount, PVOID pGlyph);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#endif // _PDEV_H
|