Code/Resource
Windows Develop
Linux-Unix program
Internet-Socket-Network
Web Server
Browser Client
Ftp Server
Ftp Client
Browser Plugins
Proxy Server
Email Server
Email Client
WEB Mail
Firewall-Security
Telnet Server
Telnet Client
ICQ-IM-Chat
Search Engine
Sniffer Package capture
Remote Control
xml-soap-webservice
P2P
WEB(ASP,PHP,...)
TCP/IP Stack
SNMP
Grid Computing
SilverLight
DNS
Cluster Service
Network Security
Communication-Mobile
Game Program
Editor
Multimedia program
Graph program
Compiler program
Compress-Decompress algrithms
Crypt_Decrypt algrithms
Mathimatics-Numerical algorithms
MultiLanguage
Disk/Storage
Java Develop
assembly language
Applications
Other systems
Database system
Embeded-SCM Develop
FlashMX/Flex
source in ebook
Delphi VCL
OS Develop
MiddleWare
MPI
MacOS develop
LabView
ELanguage
Software/Tools
E-Books
Artical/Document
font.h
Package: shell.rar [view]
Upload User: xhy777
Upload Date: 2007-02-14
Package Size: 24088k
Code Size: 4k
Category:
Windows Kernel
Development Platform:
Visual C++
- /********************************************************************
- *
- * Header Name : font.h
- * Font structures defines for MLang fontlink2
- *
- ********************************************************************/
- #ifndef __FONT_H__
- #define __FONT_H__
- #define TWO_BYTE_NUM(p) (((p[0])<<8)|(p[1]))
- #define FOUR_BYTE_NUM(p) (((p[0])<<24)|((p[1])<<16)|((p[2])<<8)|(p[3]))
- #define OFFSET_OS2CPRANGE sizeof(SHORT) * 24 + sizeof(PANOSE) + sizeof(ULONG) * 4 + sizeof(CHAR) * 4
- #define MAX_FONT_FILE_NAME 48
- #define FONT_TABLE_INIT_SIZE 100
- #define FONT_DATA_FILE_NAME TEXT("mlfcache.dat")
- #define FONT_DATA_SIGNATURE "mlang font data"
- #define REGFONTKEYNT TEXT("Software\Microsoft\Windows NT\CurrentVersion\Fonts")
- #define REGFONTKEY95 TEXT("Software\Microsoft\Windows\CurrentVersion\Fonts")
- #define FONT_FOLDER TEXT("fonts")
- #define MAX_FONT_INDEX 30
- #define FONTDATATABLENUM 2
- // Font database file format:
- // Table header
- // Table Entry [Table Entry]
- // Table data [Table data]
- typedef struct tagFontDataHeader{
- char FileSig[16];
- DWORD dwVersion;
- DWORD dwCheckSum;
- WORD nTable;
- } FONTDATAHEADER;
- typedef struct tagFontTable{
- char szName[4];
- DWORD dwOffset;
- DWORD dwSize;
- } FONTDATATABLE;
- typedef struct {
- char TTCTag [4];
- BYTE Version [4];
- BYTE DirCount [4];
- BYTE OffsetTTF1[4];
- } TTC_HEAD;
- typedef struct {
- BYTE Version [4];
- BYTE NumTables [2];
- BYTE SearchRange [2];
- BYTE EntrySelector[2];
- BYTE RangeShift [2];
- } TTF_HEAD;
- typedef struct {
- char Tag [4];
- BYTE CheckSum[4];
- BYTE Offset [4];
- BYTE Length [4];
- } TABLE_DIR;
- typedef struct {
- BYTE Format[2];
- BYTE NumRec[2];
- BYTE Offset[2];
- } NAME_TABLE;
- #define FONT_SUBFAMILY_NAME 2
- #define FONT_NAME 4
- #define MICROSOFT_PLATFORM 3
- #define UNICODE_INDEXING 1
- #define CMAP_FORMAT_FOUR 4
- #define APPLE_UNICODE_PLATFORM 0
- #define APPLE_UNICODE_INDEXING 3
- #define UNICODE_SYMBOL_INDEXING 0
- typedef struct {
- BYTE Platform[2];
- BYTE Encoding[2]; // = 1 if string is in Unicode
- BYTE LangID [2];
- BYTE NameID [2]; // = 2 for font subfamily name
- BYTE Length [2];
- BYTE Offset [2];
- } NAME_RECORD;
- typedef struct {
- BYTE Version [2];
- BYTE NumTables[2];
- } CMAP_HEAD;
- typedef struct {
- BYTE Platform[2]; // = 3 if Microsoft
- BYTE Encoding[2]; // = 1 if string is in Unicode
- BYTE Offset [4];
- } CMAP_TABLE;
- typedef struct {
- BYTE Platform[2]; // = 3 if Microsoft
- BYTE Encoding[2]; // = 1 if string is in Unicode
- BYTE Offset [4];
- } OS2_TABLE;
- typedef struct {
- BYTE Format [2]; // must be 4
- BYTE Length [2];
- BYTE Version [2];
- BYTE SegCountX2 [2];
- BYTE SeachgRange [2];
- BYTE EntrySelector[2];
- BYTE RangeShift [2];
- } CMAP_FORMAT;
- // font table
- typedef struct tagFontInfo{
- TCHAR szFaceName[LF_FACESIZE];
- TCHAR szFileName[MAX_FONT_FILE_NAME];
- DWORD dwCodePages[2];
- LOGFONT lf;
- DWORD dwUniSubRanges[4];
- SCRIPT_IDS scripts;
- } FONTINFO;
- typedef struct tagSCRIPT
- {
- SCRIPT_ID sid;
- UINT uidDescription; // script name (localization needed)
- UINT uiCodePage; // can be NULL to indicate no Windows code pages
- WCHAR wcCandidate; // primary candiate for the script
- UINT uidFixedWidthFont; // default fixed width font (localization needed)
- UINT uidProportionalFont;// default proportional font (localization needed)
- DWORD dwFlags; // script level flag
- } SCRIPT;
- //Unicode range table
- typedef struct tagURangeFont{
- WCHAR wcFrom;
- WCHAR wcTo;
- int nFonts;
- int *pFontIndex;
- } URANGEFONT;
- extern UINT g_cScript;
- extern const SCRIPT ScriptTable[];
- //Script
- #endif // __FONT_H__