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.
|
|
///////////////////////////////////////////////////////////////
// fmlbp.h
//
// September.3,1997 H.Ishida (FPL)
//
// COPYRIGHT(C) FUJITSU LIMITED 1997
// NTRAID#NTBUG9-553888-2002/03/22-yasuho-: mandatory changes (strsafe.h)
#include <minidrv.h>
#include <stdio.h>
#include <prcomoem.h>
#include <strsafe.h>
#define FUFM_OEM_SIGNATURE 'FUFM'
#define FUFM_OEM_VERSION 0x00010000L
typedef const BYTE FAR* LPCBYTE;
typedef struct tag_FUFM_OEM_EXTRADATA { OEM_DMEXTRAHEADER dmExtraHdr; } FUFM_OEM_EXTRADATA, *PFUFM_OEM_EXTRADATA;
#define WRITESPOOLBUF(pdevobj, s, n) \
((pdevobj)->pDrvProcs->DrvWriteSpoolBuf((pdevobj), s, n))
#define IS_VALID_FUFMPDEV(p) \
((p) != NULL && (p)->dwSignature == FUFM_OEM_SIGNATURE)
#define FUFM_MASTER_TO_DEVICE(p,d) \
((p)->devData.dwResolution * (d) / FUFM_RESOLUTION_MASTER_UNIT)
// FUFMDATA.dwSizeReduction
#define FUFM_SIZE_REDUCTION_100 0
#define FUFM_SIZE_REDUCTION_75 1
#define FUFM_SIZE_REDUCTION_70 2
#define FUFM_SIZE_REDUCTION_UNKNOWN ((DWORD)-1)
// FUFMDATA.dwResolution
#define FUFM_RESOLUTION_MASTER_UNIT 1200
#define FUFM_RESOLUTION_240 240
#define FUFM_RESOLUTION_400 400
#define FUFM_RESOLUTION_UNKNOWN ((DWORD)-1)
// FUFMDATA.dwPaperSize
#define FUFM_PAPERSIZE_A3 0x00000003
#define FUFM_PAPERSIZE_A4 0x00000004
#define FUFM_PAPERSIZE_A5 0x00000005
#define FUFM_PAPERSIZE_B4 0x00010004
#define FUFM_PAPERSIZE_B5 0x00010005
#define FUFM_PAPERSIZE_LETTER 0x00030000
#define FUFM_PAPERSIZE_LEGAL 0x00020000
#define FUFM_PAPERSIZE_JAPANESE_POSTCARD 0x00040000
#define FUFM_PAPERSIZE_CUSTOM_SIZE 0x00090000
#define FUFM_PAPERSIZE_UNKNOWN ((DWORD)-1)
// FUFMDATA.dwPaperSource
#define FUFM_PAPERSOURCE_AUTO 0x00010000
#define FUFM_PAPERSOURCE_MANUAL 0x00000002
#define FUFM_PAPERSOURCE_BIN1 0x00000000
#define FUFM_PAPERSOURCE_BIN2 0x00000001
#define FUFM_PAPERSOURCE_BIN3 0x00000003
#define FUFM_PAPERSOURCE_UNKNOWN ((DWORD)-1)
// FUFMDATA.dwPaperOrientation
#define FUFM_PAPERORIENTATION_PORTRAIT 0
#define FUFM_PAPERORIENTATION_LANDSCAPE 1
#define FUFM_PAPERORIENTATION_UNKNOWN ((DWORD)-1)
// FUFMDATA.dwFontAttributes
#define FUFM_FONTATTR_BOLD 0x00000001
#define FUFM_FONTATTR_ITALIC 0x00000002
#define FUFM_FONTATTR_UNDERLINE 0x00000004
#define FUFM_FONTATTR_STRIKEOUT 0x00000008
typedef struct tag_FUFMDATA { DWORD dwSizeReduction; DWORD dwResolution; DWORD dwPaperSize; DWORD dwPaperSource; DWORD dwPaperOrientation; DWORD dwCopies; DWORD dwFontAttributes; } FUFMDATA;
typedef FUFMDATA* PFUFMDATA; typedef const FUFMDATA* PCFUFMDATA;
// FUFMPDEV.dwEmMode
enum tag_FUFM_EMMODE { FUFM_EMMODE_FM, FUFM_EMMODE_ESCP };
typedef enum tag_FUFM_EMMODE FUFM_EMMODE;
// FUFMPDEV.dwFlags
#define FUFM_FLAG_SCALABLEFONT 0x0001
#define FUFM_FLAG_QUICKRESET 0x0002
#define FUFM_FLAG_PAPER3 0x0004
#define FUFM_FLAG_START_JOB_0 0
#define FUFM_FLAG_START_JOB_1 FUFM_FLAG_SCALABLEFONT
#define FUFM_FLAG_START_JOB_2 (FUFM_FLAG_SCALABLEFONT | FUFM_FLAG_QUICKRESET)
#define FUFM_FLAG_START_JOB_3 (FUFM_FLAG_SCALABLEFONT | FUFM_FLAG_QUICKRESET | FUFM_FLAG_PAPER3)
#define FUFM_FLAG_START_JOB_4 FUFM_FLAG_PAPER3
// #251047: overlaps SBCS on vert mode
#define FUFM_FLAG_VERTICALFONT 0x0008
// #284409: SBCS rotated on vert mode
#define FUFM_FLAG_FONTROTATED 0x0010
// FUFMPDEV.dwPosChanged
#define FUFM_X_POSCHANGED 0x0001
#define FUFM_Y_POSCHANGED 0x0002
typedef struct tag_FUFMPDEV { DWORD dwSignature; FUFM_EMMODE emMode; DWORD dwFlags;
DWORD dwPosChanged; int x; int y; int iLinefeedSpacing; int cxfont; //#144637
DWORD dwPaperWidth; DWORD dwPaperLength; int cyPage;
FUFMDATA devData; FUFMDATA reqData; } FUFMPDEV, *PFUFMPDEV;
// @Aug/31/98 ->
#define MAX_COPIES_VALUE 999
// @Aug/31/98 <-
// Device font height and font width values calculated
// form the IFIMETRICS field values. Must be the same way
// what Unidrv is doing to calculate stdandard variables.
// (Please check.)
#define FH_IFI(p) ((p)->fwdUnitsPerEm)
#define FW_IFI(p) ((p)->fwdAveCharWidth)
// NTRAID#NTBUG9-587382-2002/03/27-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
// end of fmlbp.h
|