mirror of https://github.com/UMSKT/xpmgr.git
179 lines
8.4 KiB
C
179 lines
8.4 KiB
C
/*************************************************************************
|
|
* *
|
|
* fontsub.h -- font subsetting services (fontsub.dll) *
|
|
* *
|
|
* (c) Microsoft Corporation. All Rights Reserved. *
|
|
* *
|
|
*************************************************************************/
|
|
|
|
#ifndef FONTSUB_DOT_H_DEFINED
|
|
#define FONTSUB_DOT_H_DEFINED
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef CONST
|
|
#define CONST const
|
|
#endif
|
|
|
|
typedef void *(__cdecl *CFP_ALLOCPROC)(size_t);
|
|
typedef void *(__cdecl *CFP_REALLOCPROC)(void *, size_t);
|
|
typedef void (__cdecl *CFP_FREEPROC)(void *);
|
|
|
|
unsigned long __cdecl CreateFontPackage(
|
|
CONST unsigned char * puchSrcBuffer, /* input TTF or TTC buffer */
|
|
CONST unsigned long ulSrcBufferSize, /* size of input TTF or TTC buffer data */
|
|
unsigned char ** ppuchFontPackageBuffer, /* output package buffer */
|
|
unsigned long * pulFontPackageBufferSize, /* output package buffer size */
|
|
unsigned long * pulBytesWritten, /* output package buffer data length */
|
|
CONST unsigned short usFlag, /* subset, compress, or both, TTF or TTC, Chars or Glyphs */
|
|
CONST unsigned short usTTCIndex, /* TTC Index, only used if TTC bit set */
|
|
CONST unsigned short usSubsetFormat, /* Old Subset, Subset or Delta */
|
|
CONST unsigned short usSubsetLanguage, /* Language in Name table to keep */
|
|
CONST unsigned short usSubsetPlatform, /* if ListType is Character, Platform of cmap to use for glyph list */
|
|
CONST unsigned short usSubsetEncoding, /* if ListType is Character, Encoding of cmap to use for glyph list */
|
|
CONST unsigned short *pusSubsetKeepList, /* List of Characters or Glyphs to keep */
|
|
CONST unsigned short usSubsetListCount, /* number of elements in list */
|
|
CFP_ALLOCPROC lpfnAllocate, /* call back function to allocate temp buffers and output buffers */
|
|
CFP_REALLOCPROC lpfnReAllocate, /* call back function to reallocate temp and output buffers */
|
|
CFP_FREEPROC lpfnFree, /* call back function to free buffer allocated with lpfnAllocate and lpfnReAllocate */
|
|
void * lpvReserved);
|
|
|
|
/* for usSubsetFormat */
|
|
#define TTFCFP_SUBSET 0 /* Straight Subset Font - Backward compatibility */
|
|
#define TTFCFP_SUBSET1 1 /* Subset font with full TTO and Kern tables. For later merge */
|
|
#define TTFCFP_DELTA 2 /* Delta font, for merge with a subset1 font */
|
|
|
|
/* for usSubsetPlatform ID values */
|
|
#define TTFCFP_UNICODE_PLATFORMID 0
|
|
#define TTFCFP_APPLE_PLATFORMID 1
|
|
#define TTFCFP_ISO_PLATFORMID 2
|
|
#define TTFCFP_MS_PLATFORMID 3
|
|
|
|
/* for usSubsetEncoding values */
|
|
#define TTFCFP_STD_MAC_CHAR_SET 0 /* goes with TTFSUB_APPLE_PLATFORMID */
|
|
#define TTFCFP_SYMBOL_CHAR_SET 0 /* goes with TTFSUB_MS_PLATFORMID */
|
|
#define TTFCFP_UNICODE_CHAR_SET 1 /* goes with TTFSUB_MS_PLATFORMID */
|
|
#define TTFCFP_DONT_CARE 0xFFFF
|
|
|
|
/* for usSubsetLanguage values */
|
|
#define TTFCFP_LANG_KEEP_ALL 0
|
|
|
|
/* for usFlags values */
|
|
#define TTFCFP_FLAGS_SUBSET 0x0001 /* if bit off, don't subset */
|
|
#define TTFCFP_FLAGS_COMPRESS 0x0002 /* if bit off, don't compress */
|
|
#define TTFCFP_FLAGS_TTC 0x0004 /* if bit off, its a TTF */
|
|
#define TTFCFP_FLAGS_GLYPHLIST 0x0008 /* if bit off, list is characters */
|
|
|
|
unsigned long __cdecl MergeFontPackage(CONST unsigned char * puchMergeFontBuffer, /* buffer containing font to merge with */
|
|
CONST unsigned long ulMergeFontBufferSize, /* size of buffer containing font to merge with */
|
|
CONST unsigned char * puchFontPackageBuffer, /* buffer containing a font package to merge with the MergeFontBuffer */
|
|
CONST unsigned long ulFontPackageBufferSize, /* length of FontPakageBuffer */
|
|
unsigned char **ppuchDestBuffer, /* output: pointer to output buffer containing a TTF to install */
|
|
unsigned long *pulDestBufferSize, /* output: length of output buffer containing TTF to install */
|
|
unsigned long *pulBytesWritten, /* output: number of bytes in buffer used for TTF */
|
|
CONST unsigned short usMode, /* kind of action to perform, see #defines below */
|
|
CFP_ALLOCPROC lpfnAllocate, /* call back function to allocate output and intermediate buffers */
|
|
CFP_REALLOCPROC lpfnReAllocate, /* call back function to allocate or reallocate output and intermediate buffers */
|
|
CFP_FREEPROC lpfnFree, /* call back function to free buffer allocated with lpfnReAllocate */
|
|
void *lpvReserved);
|
|
|
|
/* for usModes */
|
|
#define TTFMFP_SUBSET 0 /* copy a Straight Subset Font package to Dest buffer */
|
|
#define TTFMFP_SUBSET1 1 /* Expand a format 1 font into a format 3 font */
|
|
#define TTFMFP_DELTA 2 /* Merge a format 2 with a format 3 font */
|
|
|
|
/* Error codes */
|
|
#ifndef NO_ERROR
|
|
#define NO_ERROR 0
|
|
#endif
|
|
|
|
#ifndef ERR_GENERIC
|
|
#define ERR_GENERIC 1000
|
|
#define ERR_READOUTOFBOUNDS 1001 /* trying to read from memory not allowed - data error? */
|
|
#define ERR_WRITEOUTOFBOUNDS 1002 /* trying to write to memory not allowed - data error? */
|
|
#define ERR_READCONTROL 1003 /* read control structure does not match data */
|
|
#define ERR_WRITECONTROL 1004 /* write control structure does not match data */
|
|
#define ERR_MEM 1005 /* error allocating memory */
|
|
#define ERR_FORMAT 1006 /* input data format error */
|
|
|
|
#define ERR_WOULD_GROW 1007 /* action would cause data to grow. use original data */
|
|
#define ERR_VERSION 1008 /* major dttf.version of the input data is greater than the version this program can read */
|
|
#define ERR_NO_GLYPHS 1009
|
|
#define ERR_INVALID_MERGE_FORMATS 1010 /* trying to merge fonts with the wrong dttf formats */
|
|
#define ERR_INVALID_MERGE_CHECKSUMS 1011 /* trying to merge 2 fonts from different mother font */
|
|
#define ERR_INVALID_MERGE_NUMGLYPHS 1012 /* trying to merge 2 fonts from different mother font */
|
|
#define ERR_INVALID_DELTA_FORMAT 1013 /* trying to subset a format 1 or 2 font */
|
|
#define ERR_NOT_TTC 1014
|
|
#define ERR_INVALID_TTC_INDEX 1015
|
|
|
|
#define ERR_MISSING_CMAP 1030
|
|
#define ERR_MISSING_GLYF 1031
|
|
#define ERR_MISSING_HEAD 1032
|
|
#define ERR_MISSING_HHEA 1033
|
|
#define ERR_MISSING_HMTX 1034
|
|
#define ERR_MISSING_LOCA 1035
|
|
#define ERR_MISSING_MAXP 1036
|
|
#define ERR_MISSING_NAME 1037
|
|
#define ERR_MISSING_POST 1038
|
|
#define ERR_MISSING_OS2 1039
|
|
#define ERR_MISSING_VHEA 1040
|
|
#define ERR_MISSING_VMTX 1041
|
|
#define ERR_MISSING_HHEA_OR_VHEA 1042
|
|
#define ERR_MISSING_HMTX_OR_VMTX 1043
|
|
#define ERR_MISSING_EBDT 1044
|
|
|
|
#define ERR_INVALID_CMAP 1060
|
|
#define ERR_INVALID_GLYF 1061
|
|
#define ERR_INVALID_HEAD 1062
|
|
#define ERR_INVALID_HHEA 1063
|
|
#define ERR_INVALID_HMTX 1064
|
|
#define ERR_INVALID_LOCA 1065
|
|
#define ERR_INVALID_MAXP 1066
|
|
#define ERR_INVALID_NAME 1067
|
|
#define ERR_INVALID_POST 1068
|
|
#define ERR_INVALID_OS2 1069
|
|
#define ERR_INVALID_VHEA 1070
|
|
#define ERR_INVALID_VMTX 1071
|
|
#define ERR_INVALID_HHEA_OR_VHEA 1072
|
|
#define ERR_INVALID_HMTX_OR_VMTX 1073
|
|
|
|
#define ERR_INVALID_TTO 1080
|
|
#define ERR_INVALID_GSUB 1081
|
|
#define ERR_INVALID_GPOS 1082
|
|
#define ERR_INVALID_GDEF 1083
|
|
#define ERR_INVALID_JSTF 1084
|
|
#define ERR_INVALID_BASE 1085
|
|
#define ERR_INVALID_EBLC 1086
|
|
#define ERR_INVALID_LTSH 1087
|
|
#define ERR_INVALID_VDMX 1088
|
|
#define ERR_INVALID_HDMX 1089
|
|
|
|
#define ERR_PARAMETER0 1100 /* calling function argument 0 is invalid */
|
|
#define ERR_PARAMETER1 1101 /* calling function argument 1 is invalid */
|
|
#define ERR_PARAMETER2 1102 /* calling function argument 2 is invalid */
|
|
#define ERR_PARAMETER3 1103 /* calling function argument 3 is invalid */
|
|
#define ERR_PARAMETER4 1104 /* calling function argument 4 is invalid */
|
|
#define ERR_PARAMETER5 1105 /* calling function argument 5 is invalid */
|
|
#define ERR_PARAMETER6 1106 /* calling function argument 6 is invalid */
|
|
#define ERR_PARAMETER7 1107 /* calling function argument 7 is invalid */
|
|
#define ERR_PARAMETER8 1108 /* calling function argument 8 is invalid */
|
|
#define ERR_PARAMETER9 1109 /* calling function argument 9 is invalid */
|
|
#define ERR_PARAMETER10 1110 /* calling function argument 10 is invalid */
|
|
#define ERR_PARAMETER11 1111 /* calling function argument 11 is invalid */
|
|
#define ERR_PARAMETER12 1112 /* calling function argument 12 is invalid */
|
|
#define ERR_PARAMETER13 1113 /* calling function argument 13 is invalid */
|
|
#define ERR_PARAMETER14 1114 /* calling function argument 14 is invalid */
|
|
#define ERR_PARAMETER15 1115 /* calling function argument 15 is invalid */
|
|
#define ERR_PARAMETER16 1116 /* calling function argument 16 is invalid */
|
|
#endif /* ERR_GENERIC */
|
|
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* FONTSUB_DOT_H_DEFINED */
|
|
|