/****************************Module*Header******************************\ * Module Name: FONTINST.H * * Module Descripton: * Font installer related structures. Some of these define the format * of the font file, and others are internal structures used by Unidrv's * built in font installer. * * Warnings: * * Issues: * * Created: 22 October 1997 * Author: Srinivasan Chandrasekar [srinivac] * * Copyright (c) 1996 - 1999 Microsoft Corporation \***********************************************************************/ #ifndef _FONTINST_H_ #define _FONTINST_H_ // // Structure to keep track of font data obtained from softfont (PCL) files // typedef struct _FNTDAT { struct _FNTDAT *pNext; // Forms a linked list PBYTE pVarData; // Pointer to buffer having PCL data DWORD dwSize; // Size of variable data FI_DATA fid; // The specific font information WCHAR wchFileName[MAX_PATH]; // Corresponding file in directory } FNTDAT, *PFNTDAT; // // Font installer callback function // INT_PTR CALLBACK FontInstProc(HWND, UINT, WPARAM, LPARAM); BOOL APIENTRY BInstallSoftFont(HANDLE, HANDLE, PBYTE, DWORD); BOOL APIENTRY BUpdateExternalFonts(HANDLE, HANDLE, PWSTR); BOOL BGetFontCartridgeFile(HANDLE, HANDLE); // // Functions to read the font file // #ifdef KERNEL_MODE HANDLE FIOpenFontFile(HANDLE, HANDLE, HANDLE); #else HANDLE FIOpenFontFile(HANDLE, HANDLE); #endif #ifdef KERNEL_MODE HANDLE FIOpenCartridgeFile(HANDLE, HANDLE, HANDLE); #else HANDLE FIOpenCartridgeFile(HANDLE, HANDLE); #endif VOID FICloseFontFile(HANDLE); DWORD FIGetNumFonts(HANDLE); PUFF_FONTDIRECTORY FIGetFontDir(HANDLE); PWSTR FIGetFontName(HANDLE, DWORD); PWSTR FIGetFontCartridgeName(HANDLE, DWORD); PDATA_HEADER FIGetFontData(HANDLE, DWORD); PDATA_HEADER FIGetGlyphData(HANDLE, DWORD); PDATA_HEADER FIGetVarData(HANDLE, DWORD); HANDLE FICreateFontFile(HANDLE, HANDLE, DWORD); BOOL FIWriteFileHeader(HANDLE); BOOL FIWriteFontDirectory(HANDLE); VOID FIAlignedSeek(HANDLE, DWORD); BOOL FICopyFontRecord(HANDLE, HANDLE, DWORD, DWORD); BOOL FIAddFontRecord(HANDLE, DWORD, FNTDAT*); BOOL FIUpdateFontFile(HANDLE, HANDLE, BOOL); // // Functions to write PCL data // DWORD FIWriteFix(HANDLE, WORD, FI_DATA*); DWORD FIWriteVar(HANDLE, PTSTR); DWORD FIWriteRawVar(HANDLE, PBYTE, DWORD); #endif // #ifndef _FONTINST_H_