1f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/*************************************************************************** 2f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)* 3f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)* Copyright (C) 1998-2008, International Business Machines 4f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)* Corporation and others. All Rights Reserved. 5f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)* 6f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)************************************************************************/ 7f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 8f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef __SFNT_H 9f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#define __SFNT_H 10f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 11f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#include "LETypes.h" 12f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 13f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)U_NAMESPACE_USE 14f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 15f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef ANY_NUMBER 16f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#define ANY_NUMBER 1 17f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 18f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 19f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct DirectoryEntry 20f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 21f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 tag; 22f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 checksum; 23f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 offset; 24f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 length; 25f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 26f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 27f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 28f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct DirectoryEntry DirectoryEntry; 29f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 30f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 31f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct SFNTDirectory 32f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 33f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 scalerType; 34f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 numTables; 35f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 searchRange; 36f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 entrySelector; 37f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 rangeShift; 38f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) DirectoryEntry tableDirectory[ANY_NUMBER]; 39f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 40f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 41f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 42f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct SFNTDirectory SFNTDirectory; 43f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 44f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 45f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 46f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPEncodingSubtableHeader 47f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 48f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 platformID; 49f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 platformSpecificID; 50f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 encodingOffset; 51f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 52f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 53f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 54f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPEncodingSubtableHeader CMAPEncodingSubtableHeader; 55f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 56f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 57f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPTable 58f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 59f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 version; 60f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 numberSubtables; 61f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtableHeader encodingSubtableHeaders[ANY_NUMBER]; 62f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 63f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 64f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 65f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPTable CMAPTable; 66f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 67f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 68f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPEncodingSubtable 69f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 70f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 format; 71f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 length; 72f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 language; 73f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 74f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 75f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 76f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPEncodingSubtable CMAPEncodingSubtable; 77f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 78f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 79f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 80f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat0Encoding : CMAPEncodingSubtable 81f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 82f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint8 glyphIndexArray[256]; 83f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 84f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 85f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat0Encoding 86f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 87f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable base; 88f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 89f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint8 glyphIndexArray[256]; 90f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 91f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 92f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat0Encoding CMAPFormat0Encoding; 93f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 94f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 95f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat2Subheader 96f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 97f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 firstCode; 98f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 entryCount; 99f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 idDelta; 100f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 idRangeOffset; 101f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 102f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 103f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 104f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat2Subheader CMAPFormat2Subheader; 105f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 106f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 107f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 108f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat2Encoding : CMAPEncodingSubtable 109f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 110f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 subHeadKeys[256]; 111f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPFormat2Subheader subheaders[ANY_NUMBER]; 112f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 113f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 114f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat2Encoding 115f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 116f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable base; 117f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 118f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 subHeadKeys[256]; 119f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPFormat2Subheader subheaders[ANY_NUMBER]; 120f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 121f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 122f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat2Encoding CMAPFormat2Encoding; 123f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 124f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 125f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 126f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat4Encoding : CMAPEncodingSubtable 127f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 128f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 segCountX2; 129f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 searchRange; 130f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 entrySelector; 131f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 rangeShift; 132f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 endCodes[ANY_NUMBER]; 133f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/* 134f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 reservedPad; 135f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 startCodes[ANY_NUMBER]; 136f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 idDelta[ANY_NUMBER]; 137f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 idRangeOffset[ANY_NUMBER]; 138f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 glyphIndexArray[ANY_NUMBER]; 139f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)*/ 140f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 141f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 142f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat4Encoding 143f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 144f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable base; 145f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 146f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 segCountX2; 147f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 searchRange; 148f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 entrySelector; 149f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 rangeShift; 150f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 endCodes[ANY_NUMBER]; 151f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/* 152f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)// le_uint16 reservedPad; 153f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)// le_uint16 startCodes[ANY_NUMBER]; 154f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)// le_uint16 idDelta[ANY_NUMBER]; 155f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)// le_uint16 idRangeOffset[ANY_NUMBER]; 156f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)// le_uint16 glyphIndexArray[ANY_NUMBER]; 157f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)*/ 158f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 159f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 160f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat4Encoding CMAPFormat4Encoding; 161f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 162f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 163f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 164f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat6Encoding : CMAPEncodingSubtable 165f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 166f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 firstCode; 167f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 entryCount; 168f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 glyphIndexArray[ANY_NUMBER]; 169f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 170f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 171f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat6Encoding 172f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 173f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable base; 174f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 175f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 firstCode; 176f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 entryCount; 177f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 glyphIndexArray[ANY_NUMBER]; 178f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 179f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 180f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat6Encoding CMAPFormat6Encoding; 181f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 182f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 183f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPEncodingSubtable32 184f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 185f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 format; 186f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 length; 187f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 language; 188f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 189f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 190f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 191f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPEncodingSubtable32 CMAPEncodingSubtable32; 192f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 193f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 194f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPGroup 195f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 196f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 startCharCode; 197f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 endCharCode; 198f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 startGlyphCode; 199f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 200f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 201f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 202f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPGroup CMAPGroup; 203f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 204f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 205f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 206f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat8Encoding : CMAPEncodingSubtable32 207f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 208f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 is32[65536/32]; 209f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 nGroups; 210f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPGroup groups[ANY_NUMBER]; 211f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 212f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 213f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat8Encoding 214f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 215f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable32 base; 216f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 217f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 is32[65536/32]; 218f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 nGroups; 219f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPGroup groups[ANY_NUMBER]; 220f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 221f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 222f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat8Encoding CMAPFormat8Encoding; 223f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 224f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 225f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 226f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat10Encoding : CMAPEncodingSubtable32 227f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 228f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 startCharCode; 229f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 numCharCodes; 230f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 glyphs[ANY_NUMBER]; 231f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 232f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 233f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat10Encoding 234f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 235f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable32 base; 236f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 237f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 startCharCode; 238f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 numCharCodes; 239f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 glyphs[ANY_NUMBER]; 240f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 241f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 242f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat10Encoding CMAPFormat10Encoding; 243f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 244f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 245f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifdef XP_CPLUSPLUS 246f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat12Encoding : CMAPEncodingSubtable32 247f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 248f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 nGroups; 249f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPGroup groups[ANY_NUMBER]; 250f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 251f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#else 252f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct CMAPFormat12Encoding 253f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 254f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPEncodingSubtable32 base; 255f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 256f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 nGroups; 257f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) CMAPGroup groups[ANY_NUMBER]; 258f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 259f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 260f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct CMAPFormat12Encoding CMAPFormat12Encoding; 261f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 262f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 263f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef le_int32 fixed; 264f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 265f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct BigDate 266f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 267f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 bc; 268f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 ad; 269f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 270f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 271f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 272f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct BigDate BigDate; 273f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 274f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 275f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct HEADTable 276f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 277f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) fixed version; 278f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) fixed fontRevision; 279f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 checksumAdjustment; 280f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint32 magicNumber; 281f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 flags; 282f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 unitsPerEm; 283f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) BigDate created; 284f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) BigDate modified; 285f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 xMin; 286f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 yMin; 287f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 xMax; 288f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 yMax; 289f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 lowestRecPPEM; 290f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 fontDirectionHint; 291f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 indexToLocFormat; 292f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 glyphDataFormat; 293f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 294f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 295f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 296f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct HEADTable HEADTable; 297f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 298f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 299f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct MAXPTable 300f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 301f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) fixed version; 302f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 numGlyphs; 303f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxPoints; 304f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxContours; 305f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxComponentPoints; 306f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxComponentContours; 307f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxZones; 308f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxTwilightPoints; 309f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxStorage; 310f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxFunctionDefs; 311f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxInstructionDefs; 312f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxStackElements; 313f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxSizeOfInstructions; 314f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxComponentElements; 315f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 maxComponentDepth; 316f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 317f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 318f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 319f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct MAXPTable MAXPTable; 320f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 321f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 322f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct HHEATable 323f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 324f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) fixed version; 325f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 ascent; 326f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 descent; 327f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 lineGap; 328f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 advanceWidthMax; 329f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 minLeftSideBearing; 330f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 minRightSideBearing; 331f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 xMaxExtent; 332f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 caretSlopeRise; 333f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 caretSlopeRun; 334f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 caretOffset; 335f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 reserved1; 336f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 reserved2; 337f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 reserved3; 338f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 reserved4; 339f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 metricDataFormat; 340f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 numOfLongHorMetrics; 341f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 342f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 343f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 344f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct HHEATable HHEATable; 345f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 346f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 347f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct LongHorMetric 348f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 349f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 advanceWidth; 350f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_int16 leftSideBearing; 351f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 352f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 353f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 354f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct LongHorMetric LongHorMetric; 355f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 356f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 357f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct HMTXTable 358f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 359f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) LongHorMetric hMetrics[ANY_NUMBER]; /* ANY_NUMBER = numOfLongHorMetrics from hhea table */ 360f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)/* le_int16 leftSideBearing[ANY_NUMBER]; ANY_NUMBER = numGlyphs - numOfLongHorMetrics */ 361f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 362f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 363f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 364f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct HMTXTable HMTXTable; 365f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 366f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 367f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum PlatformID 368f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 369f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) PLATFORM_UNICODE = 0, 370f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) PLATFORM_MACINTOSH = 1, 371f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) PLATFORM_ISO = 2, 372f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) PLATFORM_MICROSOFT = 3, 373f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) PLATFORM_CUSTOM = 4 374f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 375f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 376f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum MacintoshEncodingID 377f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 378f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) MACINTOSH_ROMAN = 0 379f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 380f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 381f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum MacintoshLanguageID 382f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 383f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) MACINTOSH_ENGLISH = 0 384f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 385f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 386f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum MicrosoftEncodingID 387f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 388f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) MICROSOFT_UNICODE_BMP = 1, 389f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) MICROSOFT_UNICODE_FULL = 10 390f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 391f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 392f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum MicrosoftLanguageID 393f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 394f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) MICROSOFT_ENGLISH = 0x409 395f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 396f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 397f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)enum NameID 398f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 399f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_COPYRIGHT_NOTICE = 0, 400f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_FONT_FAMILY = 1, 401f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_FONT_SUB_FAMILY = 2, 402f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_UNIQUE_FONT_ID = 3, 403f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_FULL_FONT_NAME = 4, 404f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_VERSION_STRING = 5, 405f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_POSTSCRIPT_NAME = 6, 406f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_TRADEMARK = 7, 407f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_MANUFACTURER = 8, 408f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_DESIGNER = 9, 409f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_DESCRIPTION = 10, 410f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_VENDOR_URL = 11, 411f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_DESIGNER_URL = 12, 412f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_LICENSE_DESCRIPTION = 13, 413f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_LICENSE_URL = 14, 414f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_RESERVED = 15, 415f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_PREFERRED_FAMILY = 16, 416f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_PREFERRED_SUB_FAMILY = 17, 417f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_COMPATIBLE_FULL = 18, 418f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_SAMPLE_TEXT = 19, 419f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NAME_POSTSCRIPT_CID = 20 420f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 421f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 422f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct NameRecord 423f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 424f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 platformID; 425f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 encodingID; 426f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 languageID; 427f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 nameID; 428f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 length; 429f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 offset; 430f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 431f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 432f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 433f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct NameRecord NameRecord; 434f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 435f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 436f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)struct NAMETable 437f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles){ 438f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 version; 439f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 count; 440f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) le_uint16 stringOffset; 441f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) NameRecord nameRecords[ANY_NUMBER]; 442f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)}; 443f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 444f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#ifndef XP_CPLUSPLUS 445f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)typedef struct NAMETable NAMETable; 446f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 447f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 448f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles)#endif 449f4ed1cf5d184064c4cf0e4359c6d5d8aadb50afaTorne (Richard Coles) 450