Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

77 lines
2.5 KiB

/***************************** MODULE HEADER ********************************
* fontgen.h
* The visible parts of the font file generation process - common to
* NT printer driver font installers.
*
* HISTORY:
* 15:02 on Sat 22 Feb 1992 -by- Lindsay Harris [lindsayh]
* Started work on it for the general NT font installer
*
* Copyright (C) 1992 Microsoft Corporation
*
*****************************************************************************/
/*
* A structure that collects all the information we need to do our
* stuff. The caller is returned one of these at FIOpen() time, and
* returns it to us for each and every call. This gives us the
* information we need to do our job.
*/
typedef struct
{
HANDLE hCurFile; /* The existing font file - if any */
HANDLE hFixFile; /* The new header part of file */
HANDLE hVarFile; /* The variable part of the file */
PWSTR pwstrCurName; /* Current name (may not exist) */
PWSTR pwstrFixName; /* Name of temporary fixed file */
PWSTR pwstrVarName; /* Name of temporary variable part of file */
HANDLE hHeap; /* The heap - convenient at times */
BYTE *pbCurFile; /* Memory mapped view of existing file */
DWORD dwID; /* For verification of validity */
} FID;
#define FID_ID 0x66696420 /* "fid " */
/*
* The user builds a linked list of the following, and passes it to
* us to allow us to add the nominated files to the existing font file.
*/
typedef struct _FONTLIST
{
struct _FONTLIST *pFLNext; /* Next in chain, 0 for the last */
void *pvFixData; /* Address of fixed data */
void *pvVarData; /* Variable component file name - 0
if there is none. */
} FONTLIST;
/*
* Function prototypes for dealing with these structures.
*/
FID *pFIOpen( PWSTR, HANDLE );
BOOL bFIClose( FID *, BOOL );
BOOL bFIUpdate( FID *, int *, FONTLIST * );
/*
* Some function prototypes. These are included here for our convenience.
* The third parameter may differ on the actual function - that is up
* to individual drivers.
* THESE FUNCTIONS ARE REQUIRED TO BE IN THE DRIVER CALLING US. IF YOU
* DO NOT WANT TO USE A PARTICULAR FUNCTION, HAVE IT RETURN 0. NOTHING
* WILL BE INSERTED INTO THE FILE UNDER THESE CONDITIONS.
*/
int iFIWriteVar( HANDLE, HANDLE, void * );
int iFIWriteFix( HANDLE, HANDLE, void * );