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.
 
 
 
 
 
 

235 lines
6.9 KiB

#ifndef _PDEV_H
#define _PDEV_H
// NTRAID#NTBUG9-553889-2002/03/13-yasuho-: strsafe.h/PREFAST/buffy
//
// Files necessary for OEM plug-in.
//
#include <minidrv.h>
#include <stdio.h>
#include <prcomoem.h>
#include <strsafe.h>
#define OEM_DRIVER_VERSION 0x0500
////////////////////////////////////////////////////////
// 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))
// Debug text.
#define ERRORTEXT(s) "ERROR " DLLTEXT(s)
////////////////////////////////////////////////////////
// OEM UD Prototypes
////////////////////////////////////////////////////////
//
// OEM Signature and version.
//
#define OEM_SIGNATURE 'FMPR' // FMPR printers
#define DLLTEXT(s) "FMPR: " s
#define OEM_VERSION 0x00010000L
//------------------------------------------------------ FMPR private devmode
typedef struct tag_OEMUD_EXTRADATA {
OEM_DMEXTRAHEADER dmExtraHdr;
} OEMUD_EXTRADATA, *POEMUD_EXTRADATA;
typedef struct {
WORD wPaperSource; // The current paper source
BOOL bFirstPage; // This is TRUE when First Page is Printing.
BYTE jColor; // Current text color
BYTE jOldColor; // Last ribbon color
} DEVICE_DATA;
//--------------------------------------------------------- command structure
typedef struct esccmd{
WORD cbSize;
PBYTE pEscStr;
} ESCCMD, FAR * PESCCMD;
#define LOCENTRY near pascal
//------------------------- Command callback id#s. for fmlbp GPC and PFM data
//------------------------- 1-255
#define CMDID_BEGINPAGE 1 // Entered in PAGECONTROL.PC_OCD_BEGINDOC as %1
#define CMDID_ENDPAGE 2
#define CMDID_BEGINDOC 3
#define CMDID_ENDDOC 4
#define CMDID_MIN24L 10
#define CMDID_MIN48H 11
#define CMDID_GOT48H 12
#define CMDID_MIN24LV 13
#define CMDID_U_MIN24LV 14
#define CMDID_MIN48HV 15
#define CMDID_U_MIN48HV 16
#define CMDID_GOT48HV 17
#define CMDID_U_GOT48HV 18
#define CMDID_MAN180 20
#define CMDID_TRA180 21
#define CMDID_180BIN1 22
#define CMDID_180BIN2 23
#define CMDID_MAN360 24
#define CMDID_360BIN1 25
#define CMDID_360BIN2 26
#define CMDID_FI_TRACTOR 27
#define CMDID_FI_FRONT 28
#define CMDID_SUIHEI_BIN1 29
#define CMDID_TAMOKUTEKI_BIN1 30
#define CMDID_SELECT_BLACK_COLOR 40
#define CMDID_SELECT_BLUE_COLOR 41
#define CMDID_SELECT_CYAN_COLOR 42
#define CMDID_SELECT_GREEN_COLOR 43
#define CMDID_SELECT_MAGENTA_COLOR 44
#define CMDID_SELECT_RED_COLOR 45
#define CMDID_SELECT_WHITE_COLOR 46
#define CMDID_SELECT_YELLOW_COLOR 47
#define CMDID_SEND_BLACK_COLOR 50
#define CMDID_SEND_CYAN_COLOR 51
#define CMDID_SEND_MAGENTA_COLOR 52
#define CMDID_SEND_YELLOW_COLOR 53
typedef unsigned short USHORT;
typedef WCHAR * PWSZ; // pwsz, 0x0000 terminated UNICODE strings only
#ifdef _FUPRJRES_C
#define ESCCMDDEF(n,s) ESCCMD n = {sizeof(s)-1, s};
#else // _FUPRJRES_C
#define ESCCMDDEF(n,s) extern ESCCMD n;
#endif // _FUPRJRES_C
//------------------------------------------------- Paper Feed & Output Command
ESCCMDDEF(ecCSFBPAGE, "\x1BQ0 [")
ESCCMDDEF(ecCSFEPAGE, "\x1BQ1 [")
ESCCMDDEF(ecTRCTBPAGE, "\x1BQ22 B")
ESCCMDDEF(ecManual2P, "\x0C")
//--------------------------------------------------------- Char Select Command
ESCCMDDEF(ecDBCS, "\x1B$B")
ESCCMDDEF(ecSBCS, "\x1B(H")
ESCCMDDEF(ecVWF, "\x1CJ\x1BQ1 q")
ESCCMDDEF(ecHWF, "\x1CK")
//--------------------------------------------------------- mode change command
ESCCMDDEF(ecESCP2FM, "\x1B/\xB2@\x7F")
ESCCMDDEF(ecFM2ESCP, "\x1B\x7F\x00\x00\x01\x05")
ESCCMDDEF(ecFMEnddoc, "\x0D\x1B\x63")
//---------------------------------------------- font select & unselect command
ESCCMDDEF(ec24Min, "\x1C(a")
ESCCMDDEF(ec48Min, "\x1C(ap")
ESCCMDDEF(ec48Got, "\x1C(aq")
ESCCMDDEF(ec26Pitch, "\x1C$\x22v")
ESCCMDDEF(ec52Pitch, "\x1C$%r")
ESCCMDDEF(ecHankaku, "\x1BQ1\x20|")
ESCCMDDEF(ecTate1, "\x1CJ")
ESCCMDDEF(ecTate2, "\x1BQ1\x20q")
ESCCMDDEF(ecYoko, "\x1CK")
//---------------------------------------------- Paper Source Selection Command
ESCCMDDEF(ecSelectBIN1, "\x1BQ20\x20[")
ESCCMDDEF(ecSelectBIN2, "\x1BQ21\x20[")
ESCCMDDEF(ecSelectFTRCT, "\x1BQ10\x20\\")
ESCCMDDEF(ecSelectFFRNT, "\x1BQ11\x20\\")
//------ This NUMBER have to be changed when GPC file (or FMPR.RC) is modified.
#define DMBIN_180BIN1 269
#define DMBIN_180BIN2 270
#define DMBIN_360BIN1 271
#define DMBIN_360BIN2 272
#define DMBIN_FI_TRACTOR 273 // Tractor (FI2 FMPR-359F1)
#define DMBIN_FI_FRONT 274 // Front inserter (FI2 FMPR-359F1)
#define DMBIN_SUIHEI_BIN1 275 // Suihei printer BIN1 (FMPR601)
#define DMBIN_TAMOKUTEKI_BIN1 276 // Tamokuteki printer BIN1 (FMPR671, 654)
// NTRAID#NTBUG9-588420-2002/04/09-yasuho-: Device "Mincho" can not print out.
#define TEXT_COLOR_UNKNOWN 0
#define TEXT_COLOR_YELLOW 1
#define TEXT_COLOR_MAGENTA 2
#define TEXT_COLOR_RED (TEXT_COLOR_YELLOW|TEXT_COLOR_MAGENTA)
#define TEXT_COLOR_CYAN 4
#define TEXT_COLOR_GREEN (TEXT_COLOR_YELLOW|TEXT_COLOR_CYAN)
#define TEXT_COLOR_BLUE (TEXT_COLOR_MAGENTA|TEXT_COLOR_CYAN)
#define TEXT_COLOR_BLACK 8
#define TEXT_COLOR_BANDW (0xFF) // for monochrome case
VOID
SetRibbonColor(
PDEVOBJ pdevobj,
BYTE jColor);
//
// Minidriver device data block which we maintain.
// Its address is saved in the DEVOBJ.pdevOEM of
// OEM customiztion I/F.
//
typedef struct {
VOID *pData; // Minidriver private data.
VOID *pIntf; // a.k.a. pOEMHelp
} MINIDEV;
//
// Easy access to the OEM data and the printer
// driver helper functions.
//
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
extern
HRESULT
XXXDrvWriteSpoolBuf(
VOID *pIntf,
PDEVOBJ pDevobj,
PVOID pBuffer,
DWORD cbSize,
DWORD *pdwResult);
#ifdef __cplusplus
}
#endif // __cplusplus
#define MINIDEV_DATA(p) \
(((MINIDEV *)(p)->pdevOEM)->pData)
#define MINIDEV_INTF(p) \
(((MINIDEV *)(p)->pdevOEM)->pIntf)
#define WRITESPOOLBUF(p, b, n, r) \
XXXDrvWriteSpoolBuf(MINIDEV_INTF(p), (p), (b), (n), (r))
#ifdef __cplusplus
extern "C" {
#endif // __cplusplus
BOOL myOEMOutputCharStr( PDEVOBJ pdevobj,PUNIFONTOBJ pUFObj,DWORD dwType,DWORD dwCount,PVOID pGlyph );
#ifdef __cplusplus
}
#endif // __cplusplus
#endif // _PDEV_H