|
|
1.1 root 1: /***************************** MODULE HEADER ********************************
2: * fontgen.h
3: * The visible parts of the font file generation process - common to
4: * NT printer driver font installers.
5: *
6: * HISTORY:
7: * 15:02 on Sat 22 Feb 1992 -by- Lindsay Harris [lindsayh]
8: * Started work on it for the general NT font installer
9: *
10: * Copyright (C) 1992 Microsoft Corporation
11: *
12: *****************************************************************************/
13:
14:
15: /*
16: * A structure that collects all the information we need to do our
17: * stuff. The caller is returned one of these at FIOpen() time, and
18: * returns it to us for each and every call. This gives us the
19: * information we need to do our job.
20: */
21:
22: typedef struct
23: {
24: HANDLE hCurFile; /* The existing font file - if any */
25: HANDLE hFixFile; /* The new header part of file */
26: HANDLE hVarFile; /* The variable part of the file */
27:
28: PWSTR pwstrCurName; /* Current name (may not exist) */
29: PWSTR pwstrFixName; /* Name of temporary fixed file */
30: PWSTR pwstrVarName; /* Name of temporary variable part of file */
31:
32: HANDLE hHeap; /* The heap - convenient at times */
33:
34: BYTE *pbCurFile; /* Memory mapped view of existing file */
35:
36: DWORD dwID; /* For verification of validity */
37: } FID;
38:
39: #define FID_ID 0x66696420 /* "fid " */
40:
41:
42: /*
43: * The user builds a linked list of the following, and passes it to
44: * us to allow us to add the nominated files to the existing font file.
45: */
46:
47: typedef struct _FONTLIST
48: {
49: struct _FONTLIST *pFLNext; /* Next in chain, 0 for the last */
50:
51: void *pvFixData; /* Address of fixed data */
52: void *pvVarData; /* Variable component file name - 0
53: if there is none. */
54: } FONTLIST;
55:
56: /*
57: * Function prototypes for dealing with these structures.
58: */
59:
60:
61: FID *pFIOpen( PWSTR, HANDLE );
62: BOOL bFIClose( FID *, BOOL );
63: BOOL bFIUpdate( FID *, int *, FONTLIST * );
64:
65:
66: /*
67: * Some function prototypes. These are included here for our convenience.
68: * The third parameter may differ on the actual function - that is up
69: * to individual drivers.
70: * THESE FUNCTIONS ARE REQUIRED TO BE IN THE DRIVER CALLING US. IF YOU
71: * DO NOT WANT TO USE A PARTICULAR FUNCTION, HAVE IT RETURN 0. NOTHING
72: * WILL BE INSERTED INTO THE FILE UNDER THESE CONDITIONS.
73: */
74:
75: int iFIWriteVar( HANDLE, HANDLE, void * );
76: int iFIWriteFix( HANDLE, HANDLE, void * );
77:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.