120 lines
3 KiB
C
120 lines
3 KiB
C
/*++
|
|
|
|
Copyright (c) 1996-1999 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
psglyph.h
|
|
|
|
Abstract:
|
|
|
|
Header file for glyph set data.
|
|
|
|
Environment:
|
|
|
|
Windows NT PostScript driver.
|
|
|
|
Revision History:
|
|
|
|
10/10/1997 -ksuzuki-
|
|
Moved all the Standard GLYPHSETDATA names to AFM2NTM.H.
|
|
|
|
11/12/1996 -slam-
|
|
Created.
|
|
|
|
dd-mm-yy -author-
|
|
description
|
|
|
|
--*/
|
|
|
|
|
|
#ifndef _PSGLYPH_H_
|
|
#define _PSGLYPH_H_
|
|
|
|
typedef struct _CODEPAGEINFO
|
|
{
|
|
DWORD dwCodePage;
|
|
DWORD dwWinCharset;
|
|
DWORD dwEncodingNameOffset;
|
|
DWORD dwEncodingVectorDataSize;
|
|
DWORD dwEncodingVectorDataOffset;
|
|
|
|
} CODEPAGEINFO, *PCODEPAGEINFO;
|
|
|
|
typedef struct _GLYPHRUN
|
|
{
|
|
|
|
WCHAR wcLow;
|
|
WORD wGlyphCount;
|
|
|
|
} GLYPHRUN, *PGLYPHRUN;
|
|
|
|
#define GLYPHSETDATA_VERSION 0x00010000
|
|
|
|
typedef struct _GLYPHSETDATA
|
|
{
|
|
|
|
DWORD dwSize; // size of the glyphset data
|
|
DWORD dwVersion; // glyphset data format version number
|
|
DWORD dwFlags; // flags
|
|
DWORD dwGlyphSetNameOffset; // offset to glyphset name string
|
|
DWORD dwGlyphCount; // number of glyphs supported
|
|
DWORD dwRunCount; // number of GLYPHRUNs
|
|
DWORD dwRunOffset; // offset to array of GLYPHRUNs
|
|
DWORD dwCodePageCount; // number of code pages supported
|
|
DWORD dwCodePageOffset; // offset to array of CODEPAGEINFOs
|
|
DWORD dwMappingTableOffset; // offset to glyph handle mapping table
|
|
DWORD dwReserved[2]; // reserved
|
|
|
|
} GLYPHSETDATA, *PGLYPHSETDATA;
|
|
|
|
//
|
|
// Mapping table type flag defintions (set to GLYPHSETDATA.dwFlags)
|
|
//
|
|
#define GSD_MTT_DWCPCC 0x00000000 // DWORD:CodePage/CharCode pair (default)
|
|
#define GSD_MTT_WCC 0x00000001 // WORD:CharCode only
|
|
#define GSD_MTT_WCID 0x00000002 // WORD:CID only (not used yet)
|
|
#define GSD_MTT_MASK (GSD_MTT_WCC|GSD_MTT_WCID)
|
|
|
|
//
|
|
// Macros to get GLYPHSETDATA elements
|
|
//
|
|
#ifndef MK_PTR
|
|
#define MK_PTR(pstruct, element) ((PVOID)((PBYTE)(pstruct)+(pstruct)->element))
|
|
#endif
|
|
|
|
#define GSD_GET_SIZE(pgsd) (pgsd->dwSize)
|
|
#define GSD_GET_FLAGS(pgsd) (pgsd->dwFlags)
|
|
#define GSD_GET_MAPPINGTYPE(pgsd) (pgsd->dwFlags & GSD_MTT_MASK)
|
|
#define GSD_GET_GLYPHSETNAME(pgsd) ((PSTR)MK_PTR(pgsd, dwGlyphSetNameOffset))
|
|
#define GSD_GET_GLYPHCOUNT(pgsd) (pgsd->dwGlyphCount)
|
|
#define GSD_GET_GLYPHRUNCOUNT(pgsd) (pgsd->dwRunCount)
|
|
#define GSD_GET_GLYPHRUN(pgsd) ((PGLYPHRUN)(MK_PTR(pgsd, dwRunOffset)))
|
|
#define GSD_GET_CODEPAGEINFOCOUNT(pgsd) (pgsd->dwCodePageCount)
|
|
#define GSD_GET_CODEPAGEINFO(pgsd) ((PCODEPAGEINFO)MK_PTR(pgsd, dwCodePageOffset))
|
|
#define GSD_GET_MAPPINGTABLE(pgsd) (MK_PTR(pgsd, dwMappingTableOffset))
|
|
|
|
|
|
//
|
|
// GLYPHSETDATA related function prototypes and macros
|
|
//
|
|
|
|
PFD_GLYPHSET
|
|
GlyphConvert(
|
|
PGLYPHSETDATA pGlyphSet
|
|
);
|
|
|
|
PFD_GLYPHSET
|
|
GlyphConvertSymbol(
|
|
PGLYPHSETDATA pGlyphSet
|
|
);
|
|
|
|
PFD_GLYPHSET
|
|
GlyphConvert2(
|
|
PGLYPHSETDATA pGlyphSet
|
|
);
|
|
|
|
#define GlyphCreateFD_GLYPHSET(pGlyph) (GlyphConvert2(pGlyph))
|
|
|
|
#endif //!_PSGLYPH_H_
|