|
|
/*++
Copyright (c) 1996 - 1999 Microsoft Corporation
Module Name:
fmlib.h
Abstract:
Include file to provide prototypes and data types for the rasdd private library.
Environment:
Windows NT printer drivers
Revision History:
11/11/96 -eigos- From NT4.0.
Note:
uni16gpc.h has to be included before including this header file. Definition CD is defined in uni16gpc.h
--*/
#ifndef _FMLIB_H_
#define _FMLIB_H_
//
// A convenient grouping for passing around information about the
// Win 3.1 font information.
//
typedef struct { BYTE *pBase; // The base address of data area
DWORD dwFlags; // Misc. flags.
DRIVERINFO DI; // DRIVERINFO for this font
PFMHEADER PFMH; // Properly aligned, not resource format
PFMEXTENSION PFMExt; // Extended PFM data, properly aligned!
EXTTEXTMETRIC *pETM; // Extended text metric
CD *pCDSelectFont; CD *pCDUnSelectFont; DWORD dwKernPairSize; w3KERNPAIR *pKernPair; DWORD dwWidthTableSize; PSHORT psWidthTable; DWORD dwCodePageOfFacenameConv; } FONTIN, *PFONTIN;
#define FLAG_FONTSIM 0x01
typedef struct { DWORD dwSize; PBYTE pCmdString; } CMDSTRING, *PCMDSTRING;
typedef struct { UNIFM_HDR UniHdr; UNIDRVINFO UnidrvInfo; CMDSTRING SelectFont; CMDSTRING UnSelectFont; CMDSTRING IDString; DWORD dwIFISize; PIFIMETRICS pIFI; EXTTEXTMETRIC *pETM; // Extended text metric
DWORD dwKernDataSize; PKERNDATA pKernData; DWORD dwWidthTableSize; PWIDTHTABLE pWidthTable; } FONTOUT, *PFONTOUT;
typedef struct { PWSTR pwstrUniqName; } FONTMISC, *PFONTMISC;
//
// Function prototypes for functions that convert Win 3.1 PFM style
// font info to the IFIMETRICS etc required by NT.
//
//
// Convert PFM style metrics to IFIMETRICS
//
BOOL BFontInfoToIFIMetric( IN HANDLE, IN FONTIN*, IN PWSTR, IN DWORD, IN OUT PIFIMETRICS*, IN OUT PDWORD, IN DWORD);
//
// Align PFM data
//
BOOL BAlignPFM( FONTIN *pFInData);
//
// Extract the Command Descriptors for (de)selecting a font
//
BOOL BGetFontSelFromPFM( IN HANDLE, IN FONTIN*, IN BOOL, IN OUT CMDSTRING*);
//
// Obtain a width vector - proportionally spaced fonts only
//
BOOL BGetWidthVectorFromPFM( IN HANDLE, IN FONTIN*, IN OUT PSHORT*, IN OUT PDWORD);
//
// Obtain a kerning pair
//
BOOL BGetKerningPairFromPFM( IN HANDLE, IN FONTIN*, OUT w3KERNPAIR **);
//
// Function to convert PFM to UFM
//
BOOL BConvertPFM2UFM( IN HANDLE, IN PBYTE, IN PUNI_GLYPHSETDATA, IN DWORD, IN PFONTMISC, IN PFONTIN, IN int, IN OUT PFONTOUT, IN DWORD);
//
// Function to convert CTT to GTT
//
BOOL BConvertCTT2GTT( IN HANDLE, IN PTRANSTAB, IN DWORD, IN WCHAR, IN WCHAR, IN PBYTE, IN PBYTE, IN OUT PUNI_GLYPHSETDATA*, IN DWORD);
#endif // _FMLIB_H_
|