Struttura IFIMETRICS (winddi.h)
La struttura IFIMETRICS definisce le informazioni per un determinato carattere di tipo che GDI può usare.
Sintassi
typedef struct _IFIMETRICS {
ULONG cjThis;
ULONG cjIfiExtra;
PTRDIFF dpwszFamilyName;
PTRDIFF dpwszStyleName;
PTRDIFF dpwszFaceName;
PTRDIFF dpwszUniqueName;
PTRDIFF dpFontSim;
LONG lEmbedId;
LONG lItalicAngle;
LONG lCharBias;
PTRDIFF dpCharSets;
BYTE jWinCharSet;
BYTE jWinPitchAndFamily;
USHORT usWinWeight;
ULONG flInfo;
USHORT fsSelection;
USHORT fsType;
FWORD fwdUnitsPerEm;
FWORD fwdLowestPPEm;
FWORD fwdWinAscender;
FWORD fwdWinDescender;
FWORD fwdMacAscender;
FWORD fwdMacDescender;
FWORD fwdMacLineGap;
FWORD fwdTypoAscender;
FWORD fwdTypoDescender;
FWORD fwdTypoLineGap;
FWORD fwdAveCharWidth;
FWORD fwdMaxCharInc;
FWORD fwdCapHeight;
FWORD fwdXHeight;
FWORD fwdSubscriptXSize;
FWORD fwdSubscriptYSize;
FWORD fwdSubscriptXOffset;
FWORD fwdSubscriptYOffset;
FWORD fwdSuperscriptXSize;
FWORD fwdSuperscriptYSize;
FWORD fwdSuperscriptXOffset;
FWORD fwdSuperscriptYOffset;
FWORD fwdUnderscoreSize;
FWORD fwdUnderscorePosition;
FWORD fwdStrikeoutSize;
FWORD fwdStrikeoutPosition;
BYTE chFirstChar;
BYTE chLastChar;
BYTE chDefaultChar;
BYTE chBreakChar;
WCHAR wcFirstChar;
WCHAR wcLastChar;
WCHAR wcDefaultChar;
WCHAR wcBreakChar;
POINTL ptlBaseline;
POINTL ptlAspect;
POINTL ptlCaret;
RECTL rclFontBox;
BYTE achVendId[4];
ULONG cKerningPairs;
ULONG ulPanoseCulture;
PANOSE panose;
PVOID Align;
} IFIMETRICS, *PIFIMETRICS;
Members
cjThis
Specifica le dimensioni in byte di questa struttura. Le dimensioni specificate includono tutte le stringhe Unicode aggiunte alla fine di questa struttura, oltre alle dimensioni in byte della struttura IFIEXTRA facoltativa.
cjIfiExtra
Specifica le dimensioni in byte della struttura IFIEXTRA che segue questa struttura IFIMETRICS. Un valore pari a zero indica che non è presente alcuna struttura IFIEXTRA.
dpwszFamilyName
Specifica l'offset in byte in una stringa Unicode con terminazione null contenente il nome della famiglia del tipo di carattere , ad esempio "Times Roman"). In genere, questa stringa segue immediatamente la struttura IFIMETRICS. Questa stringa deve essere uguale al nome registrato nel membro lfFaceName della struttura WIN32 LOGFONT.
dpwszStyleName
Specifica l'offset in byte in una stringa Unicode con terminazione null che descrive lo stile del tipo di carattere ,ad esempio "Grassetto").
dpwszFaceName
Specifica l'offset in byte in una stringa Unicode con terminazione null che rappresenta il nome univoco e completo del tipo di carattere. Il nome contiene i nomi della famiglia e della sottofamiglia del tipo di carattere ,ad esempio "Times New Roman Bold").
dpwszUniqueName
Specifica l'offset in byte in una stringa Unicode con terminazione null che rappresenta l'identificatore univoco del tipo di carattere, ad esempio "Monotype:Times New Roman:1990").
dpFontSim
Specifica l'offset in byte dall'inizio di questa struttura IFIMETRICS a una struttura FONTSIM che descrive le simulazioni supportate dal tipo di carattere. Il driver deve impostare questo membro su un valore diverso da zero solo se il carattere supporta simulazioni grassetto, corsivo o grassetto; in caso contrario, il driver deve impostare questo valore su zero.
Si noti che se un carattere è corsivo per progettazione, il driver non deve indicare il supporto del carattere per la simulazione corsiva, anche se può indicare il supporto del carattere per la simulazione corsiva grassetto. Analogamente, il driver non deve indicare il supporto del carattere per la simulazione grassetto se il carattere è grassetto per progettazione, ma può indicare il supporto del carattere per la simulazione corsiva grassetto. Se il carattere è sia grassetto che corsivo per progettazione, non deve supportare alcuna simulazione.
Gli offset nella struttura FONTSIM sono relativi alla base della struttura FONTSIM .
lEmbedId
Specifica l'ID incorporamento del tipo di carattere. Questo valore è TrueType specifico e deve essere impostato su zero da tutti gli altri provider di tipi di carattere.
lItalicAngle
Specifica l'angolo corsivo del tipo di carattere. Questo valore è TrueType specifico e deve essere impostato su zero da tutti gli altri provider di tipi di carattere.
lCharBias
Specifica il pregiudizio del carattere. Questo valore è TrueType specifico e deve essere impostato su zero da tutti gli altri provider di tipi di carattere.
dpCharSets
Specifica l'offset dall'inizio di questa struttura IFIMETRICS a una matrice contenente un elenco di tutti i set di caratteri di Windows supportati da questo tipo di carattere. La matrice è di 16 byte di dimensioni e viene sempre terminata con DEFAULT_CHARSET. Il primo valore della matrice deve identificare il set di caratteri di Windows che ha la copertura migliore e più completa nel tipo di carattere; questo valore deve essere archiviato anche in jWinCharSet. Ad esempio, se si tratta di un tipo di carattere giapponese che supporta anche set di caratteri ANSI e cirillico, jWinCharSet deve essere impostato su SHIFTJIS_CHARSET e la matrice identificata da dpCharSets contiene SHIFTJIS_CHARSET, ANSI_CHARSET, RUSSIAN_CHARSET, DEFAULT_CHARSET.
Se questo tipo di carattere non supporta più di un set di caratteri di Windows, dpCharSets deve essere impostato su zero.
jWinCharSet
Identifica il set di caratteri più supportato da questo tipo di carattere. Se il tipo di carattere supporta solo un singolo set di caratteri di Windows, il driver deve archiviare il valore corrispondente in jWinCharSet. Il driver non deve archiviare DEFAULT_CHARSET in questo campo. Questo membro può essere uno dei valori seguenti:
Valore | Significato |
---|---|
ANSI_CHARSET | Questo tipo di carattere supporta il set di caratteri WINDOWS ANSI. |
ARABIC_CHARSET | Questo tipo di carattere supporta il set di caratteri arabo. |
BALTIC_CHARSET | Questo tipo di carattere supporta il set di caratteri Baltic. |
CHINESEBIG5_CHARSET | Questo tipo di carattere supporta il set di caratteri cinese tradizionale (Big 5). |
EASTEUROPE_CHARSET | Questo tipo di carattere supporta il set di caratteri dell'Europa orientale. |
GB2312_CHARSET | Questo tipo di carattere supporta il set di caratteri cinese semplificato (PRC). |
GREEK_CHARSET | Questo tipo di carattere supporta il set di caratteri greco. |
HANGEUL_CHARSET | Questo tipo di carattere supporta il set di caratteri coreano (Hangeul). |
HEBREW_CHARSET | Questo tipo di carattere supporta il set di caratteri ebraico. |
JOHAB_CHARSET | Questo tipo di carattere supporta il set di caratteri coreano (Johab). |
OEM_CHARSET | Questo tipo di carattere supporta un set di caratteri specifico dell'OEM. Il set di caratteri OEM dipende dal sistema. |
SHIFTJIS_CHARSET | Questo tipo di carattere supporta il set di caratteri Shift-JIS (Giapponese Industry Standard). |
SYMBOL_CHARSET | Questo tipo di carattere supporta il set di caratteri dei simboli di Windows. |
RUSSIAN_CHARSET | Questo tipo di carattere supporta il set di caratteri cirillico. |
THAI_CHARSET | Questo tipo di carattere supporta il set di caratteri thai. |
TURKISH_CHARSET | Questo tipo di carattere supporta il set di caratteri turco. |
VIETNAMESE_CHARSET | Questo tipo di carattere supporta il set di caratteri vietnamiti. |
jWinPitchAndFamily
Specifica il passo del tipo di carattere. I due bit a basso ordine specificano il passo del tipo di carattere e possono essere uno dei valori seguenti:
Valore | Significato |
---|---|
FIXED_PITCH | Per i tipi di carattere di passo fissi |
VARIABLE_PITCH | Per i tipi di carattere di passo variabile |
I bit da 4 a 7 di questo membro specificano la famiglia di caratteri e possono essere uno dei valori seguenti:
Valore | Significato |
---|---|
FF_DECORATIVE | Tipi di carattere di novità, ad esempio Old English. |
FF_DONTCARE | Non importare o sconosciuto. |
FF_MODERN | Tipi di carattere con larghezza costante del tratto (passo fisso), con o senza serifs. I tipi di carattere a passo fisso sono in genere moderni, ad esempio Pica, Elite e Courier. |
FF_ROMAN | Tipi di carattere con larghezza del tratto variabile (spaziata proporzionalmente) e con serifs, ad esempio Times Roman, Palatino e Century Schoolbook. |
FF_SCRIPT | I tipi di carattere progettati per essere simili alla grafia, ad esempio Script e Cursive. |
FF_SWISS | Tipi di carattere con larghezza del tratto variabile (a spaziatura proporzionale) e senza serif, ad esempio Helvetica e Svizzera. |
usWinWeight
Specifica il peso del tipo di carattere compreso nell'intervallo compreso tra 0 e 1000 (ad esempio, 400 è normale e 700 è grassetto). Questo valore viene fornito all'applicazione nel membro lfWeight della struttura LOGFONT Win32.
flInfo
Specifica informazioni aggiuntive sul tipo di carattere. Questo campo può essere una combinazione dei valori di flag seguenti:
FM_INFO_1BPP
Indica che una bitmap del glifo ha una profondità di colore di un bit per pixel. Per Windows NT 3.1, la prima versione di Windows NT, questo flag deve essere impostato.
FM_INFO_4BPP
Indica che una bitmap del glifo ha una profondità di colore di quattro bit per pixel. Il driver deve impostare questa impostazione se il tipo di carattere supporta bitmap di glifi antialiased con 16 livelli di grigio.
FM_INFO_8BPP
Indica che una bitmap del glifo ha una profondità di colore di otto bit per pixel. La versione corrente di GDI ignorerà questa impostazione perché non supporta i tipi di carattere a colori.
FM_INFO_16BPP
Indica che una bitmap del glifo ha una profondità di colore di 16 bit per pixel. La versione corrente di GDI ignorerà questa impostazione perché non supporta i tipi di carattere a colori.
FM_INFO_24BPP
Indica che una bitmap del glifo ha una profondità di colore di 24 bit per pixel. La versione corrente di GDI ignorerà questa impostazione perché non supporta i tipi di carattere a colori.
FM_INFO_32BPP
Indica che una bitmap del glifo ha una profondità di colore di 32 bit per pixel. La versione corrente di GDI ignorerà questa impostazione perché non supporta i tipi di carattere a colori.
FM_INFO_90DEGREE_ROTATIONS
Indica che il tipo di carattere può essere realizzato in rotazioni di 90 gradi della forma notzionale originale. GDI richiede la rotazione di un tipo di carattere includendo la rotazione nella trasformazione notzionale del dispositivo passata al driver durante la creazione del tipo di carattere. Questo membro ha un significato solo quando il flag FM_INFO_ARB_XFORMS non è stato impostato.
FM_INFO_ANISOTROPIC_SCALING_ONLY
Indica che il tipo di carattere supporta solo il ridimensionamento anisotropico arbitrario. Ovvero, le trasformazioni sono equivalenti a una matrice diagonale moltiplicata per un numero reale positivo. Se questo flag è impostato, non è possibile impostare il FM_INFO_ARB_XFORMS e i flag FM_INFO_ISOTROPIC_SCALING_ONLY. Se viene impostato anche il flag FM_INFO_90DEGREE_ROTATIONS, il tipo di carattere supporta trasformazioni che sono una combinazione di una semplice scala anisotropica seguita da una rotazione di più di 90 gradi.
FM_INFO_ARB_XFORMS
Indica che un tipo di carattere può essere realizzato in un intervallo continuo di trasformazioni lineari bidimensionali.
FM_INFO_CONSTANT_WIDTH
Indica che tutti i glifi del tipo di carattere in tutte le realizzazioni hanno lo stesso valore di incremento del carattere. Se questo flag è impostato, è necessario impostare anche il flag FM_INFO_OPTICALLY_FIXED_PITCH.
FM_INFO_DBCS_FIXED_PITCH
Indica che i caratteri a byte doppio per questo tipo di carattere sono a passo fisso. Nulla è implicito sui caratteri a byte singolo. Questo flag è significativo solo per i tipi di carattere che supportano un set di caratteri a byte doppio, ad esempio SHIFT JIS. I tipi di carattere che non supportano un DBCS non devono impostare questo flag.
FM_INFO_DO_NOT_ENUMERATE
Indica che questo tipo di carattere non verrà enumerato dalle routine Win32 EnumFontFamiliesEx, EnumFontFamilies o EnumFonts . Inoltre, la stringa restituita a una chiamata dell'applicazione Win32 a GetTextFace verrà recuperata dalla stringa dpwszUniqueName. Questo flag consente al provider di tipi di carattere di associare più di una struttura IFIMETRICS a uno dei tipi di carattere.
FM_INFO_DSIG
Indica che un tipo di carattere è conforme allo standard Unicode.
FM_INFO_FAMILY_EQUIV
Indica che l'offset dpwszFamilyName in IFIMETRICS è effettivamente l'offset a un elenco di nomi di famiglia o alias equivalenti. Il nome è la base o il nome reale; i nomi successivi sono equivalenti o alias. Ogni nome nell'elenco è con terminazione Null; l'elenco viene terminato da due zeri.
- <nome>di base 0><alias 1<>0>...<<alias n>
- <0 0><>
I nomi basati vengono usati solo per il mapping; non vengono enumerate.
FM_INFO_IGNORE_TC_RA_ABLE
Indica che, per questo tipo di carattere, il flag TC_RA_ABLE viene ignorato.
FM_INFO_INTEGER_WIDTH
Indica che tutti i glifi hanno larghezze avanzate nonfrazionali. I tipi di carattere bitmap in genere impostano questo flag.
FM_INFO_INTEGRAL_SCALING
Indica che il tipo di carattere può essere ridimensionato in base a una quantità integrale nelle direzioni x e y. Se questo flag è impostato, il driver deve essere in grado di eseguire il rendering dei glifi nel caso in cui la trasformazione da notzionale a dispositivo venga ridimensionata in base agli importi integrali nelle direzioni x e y. GDI richiede il ridimensionamento integrale di un tipo di carattere includendo le proporzioni assiali nella trasformazione da notzionale a dispositivo passate al driver durante la creazione del tipo di carattere. Questo flag è significativo solo quando il flag FM_INFO_ARB_XFORMS non è stato impostato.
FM_INFO_ISOTROPIC_SCALING_ONLY
Indica che il tipo di carattere supporta solo il ridimensionamento isotropico arbitrario. Vale a dire, le trasformazioni sono equivalenti alla matrice di identità moltiplicata per un numero reale positivo. Se questo flag è impostato, non è possibile impostare né il FM_INFO_ARB_XFORMS né i flag FM_INFO_ANISOTROPIC_SCALING_ONLY. Se il flag FM_INFO_90DEGREE_ROTATIONS è impostato, il tipo di carattere supporta trasformazioni equivalenti a un ridimensionamento isotropico seguito da una rotazione di più di 90 gradi.
FM_INFO_OPTICALLY_FIXED_PITCH
Indica che questo tipo di carattere viene considerato tipografico come passo fisso. Si tratta di una qualità ottica del tipo di carattere e non indica necessariamente che tutti i glifi del tipo di carattere hanno lo stesso incremento di caratteri.
FM_INFO_NONNEGATIVE_AC
Indica che tutti i glifi di questo tipo di carattere hanno una spaziatura non negativo ec . Ovvero, la casella nera del glifo non si estende mai all'esterno dell'area delimitata dall'origine del carattere e dal punto di concatenazione dei caratteri.
FM_INFO_NOT_CONTIGUOUS
Indica che il set di caratteri supportato non è contiguo.
FM_INFO_RETURNS_BITMAPS
Indica che il tipo di carattere contiene una firma digitale valida.
FM_INFO_RETURNS_OUTLINES
Indica che per qualsiasi glifo supportato dal driver, GDI può richiedere una struttura PATHOBJ che descrive la struttura di tale glifo. Se possibile, quando la struttura viene riempita usando le convenzioni di riempimento del percorso di GDI, la bitmap risultante deve essere identica alla bitmap restituita dal driver. I flag FM_INFO_RETURNS_OUTLINES e FM_INFO_RETURNS_STOKES non possono essere impostati contemporaneamente.
FM_INFO_RETURNS_STROKES
Indica che per qualsiasi glifo supportato dai driver, GDI può richiedere una struttura PATHOBJ che descrive la spline del glifo. Questo percorso non può essere riempito, ma può essere tracciato per dare una rappresentazione del glifo. I flag FM_INFO_RETURNS_OUTLINES e FM_INFO_RETURNS_STOKES non possono essere impostati contemporaneamente.
FM_INFO_RIGHT_HANDED
Indica che la direzione di salita del tipo di carattere è di 90 gradi in senso antiorario rispetto alla direzione della linea di base. La direzione di salita è la direzione lungo la quale viene misurata l'altezza ed è sempre perpendicolare alla direzione di base.
FM_INFO_TECH_BITMAP
Indica che il tipo di carattere è un tipo di carattere bitmap.
FM_INFO_TECH_CFF
Indica che il tipo di carattere è un tipo di carattere OpenType Pscript che contiene una tabella CFF (Compact Font Format).
FM_INFO_TECH_MM
Indica che si tratta di un tipo di carattere Mm (Multiple Master).
FM_INFO_TECH_OUTLINE_NOT_TRUETYPE
Indica che il tipo di carattere è basato su una tecnologia dei tipi di carattere scalabile che utilizza percorsi di struttura, ma non è basata su TrueType. Questo flag non specifica se i percorsi restituiti per questo tipo di carattere devono essere riempiti o tracciati; il consumer deve esaminare i flag FM_INFO_RETURNS_STROKES e FM_INFO_RETURNS_OUTLINES per queste informazioni.
FM_INFO_TECH_STROKE
Indica che il tipo di carattere è basato su una tecnologia di carattere con tratto. Questo flag non specifica se i percorsi restituiti per questo tipo di carattere devono essere riempiti o tratti; il consumer deve esaminare i flag di FM_INFO_RETURNS_STROKES e FM_INFO_RETURNS_OUTLINES per queste informazioni.
FM_INFO_TECH_TRUETYPE
Indica che il tipo di carattere è un carattere TrueType.
FM_INFO_TECH_TYPE1
Indica che questo tipo di carattere è un carattere dello schermo PostScript (Type1 o OpenType PostScript).
fsSelection
Specifica una combinazione dei flag seguenti:
Valore | Significato |
---|---|
FM_SEL_BOLD | Impostare se i caratteri del tipo di carattere sono in grassetto. |
FM_SEL_ITALIC | Impostare se i caratteri del tipo di carattere sono corsivi. |
FM_SEL_NEGATIVE | Impostare se i caratteri del tipo di carattere hanno il primo piano e lo sfondo inverso. |
FM_SEL_OUTLINED | Impostare se i caratteri del tipo di carattere sono vuoti. |
FM_SEL_REGULAR | Impostare se i caratteri del tipo di carattere sono di peso normale. |
FM_SEL_STRIKEOUT | Impostare se i caratteri del tipo di carattere vengono visualizzati per impostazione predefinita; in caso contrario, gli scioperi devono essere simulati. |
FM_SEL_UNDERSCORE | Impostare se tutti i caratteri del tipo di carattere sono sottolineati per impostazione predefinita; in caso contrario, è necessario simulare la sottolineatura. |
fsType
Si tratta di un campo di bit specifico di TrueType che indica determinate proprietà per il tipo di carattere, ad esempio l'incorporamento del tipo di carattere e i diritti di licenza per il tipo di carattere. I tipi di carattere incorporabili possono essere archiviati in un documento. Quando un documento con tipi di carattere incorporati viene aperto in un sistema che non dispone del tipo di carattere installato (il sistema remoto), il tipo di carattere incorporato può essere caricato per l'uso temporaneo (e in alcuni casi permanente) in tale sistema da un'applicazione con riconoscimento dell'incorporamento. I diritti di licenza di incorporamento vengono concessi dal fornitore di tipi di carattere. È possibile impostare i flag seguenti:
Valore | Significato |
---|---|
FM_EDITABLE_EMBED | Impostare se il tipo di carattere può essere incorporato e caricato temporaneamente in altri sistemi. I documenti contenenti tipi di carattere modificabili possono essere aperti per la lettura e la scrittura. |
FM_READONLY_EMBED | Impostare se l'incorporamento di lettura/scrittura non è consentito; è consentito solo l'incapsulamento "anteprima e stampa". Quando questo bit è impostato, il tipo di carattere può essere incorporato e caricato temporaneamente nel sistema remoto. I documenti contenenti tipi di carattere "anteprima e stampa" devono essere aperti "di sola lettura;" non è possibile applicare modifiche al documento. |
|
Impostare se il tipo di carattere è un carattere di licenza con restrizioni. Quando viene impostato solo questo bit, questo tipo di carattere non deve essere modificato, incorporato o scambiato in qualsiasi modo senza prima ottenere l'autorizzazione del proprietario legale. Per l'incorporamento di licenze con restrizioni, deve essere l'unico livello di incorporamento selezionato. |
I tipi di carattere con il set di bit di FM_READONLY_EMBED indicano che possono essere incorporati all'interno di documenti, ma devono essere installati temporaneamente nel sistema remoto. Qualsiasi documento che include un tipo di carattere FM_READONLY_EMBED deve essere aperto "di sola lettura". Ovvero, l'applicazione può consentire all'utente di visualizzare e/o stampare il documento, ma non modificarlo.
I tipi di carattere con il set di bit FM_EDITABLE_EMBED indicano che possono essere incorporati nei documenti, ma devono essere installati temporaneamente nel sistema remoto. Al contrario di FM_READONLY_EMBED tipi di carattere, è possibile aprire i documenti contenenti tipi di carattere modificabili "lettura/scrittura;" e le modifiche possono essere salvate.
I tipi di carattere senza set di bit fsType indicano che possono essere incorporati e installati definitivamente nel sistema remoto da un'applicazione. L'utente del sistema remoto acquisisce i diritti, gli obblighi e le licenze identici per tale tipo di carattere come acquirente originale del tipo di carattere ed è soggetto allo stesso contratto di licenza dell'utente finale, copyright, brevetto di progettazione e/o marchio come l'acquirente originale.
Le applicazioni che implementano il supporto per l'incorporamento dei tipi di carattere, tramite l'uso della DLL di incorporamento dei tipi di carattere o tramite altri mezzi, non devono incorporare tipi di carattere non concessi in licenza per consentire l'incorporamento. Inoltre, le applicazioni che caricano tipi di carattere incorporati per l'uso temporaneo devono eliminare i tipi di carattere quando il documento contenente il carattere incorporato viene chiuso.
Se vengono impostati più bit di incorporamento, la licenza meno restrittiva concessa ha la precedenza. Ad esempio, se i bit 1 e 3 sono impostati, bit 3 ha la precedenza su bit 1 e il tipo di carattere può essere incorporato con diritti modificabili. A scopo di compatibilità, la maggior parte dei fornitori che concede diritti di incorporamento modificabili imposta anche il bit di anteprima & stampa (0x000C). Ciò consente a un'applicazione che supporta solo l'incorporamento anteprima & Stampa per rilevare che l'incorporamento del tipo di carattere è consentito.
fwdUnitsPerEm
Specifica l'altezza em del tipo di carattere.
fwdLowestPPEm
Specifica le dimensioni leggibili più piccole del tipo di carattere, in pixel. Questo valore viene ignorato per i tipi di carattere bitmap.
fwdWinAscender
Specifica il valore crescente di Windows per il tipo di carattere.
fwdWinDescender
Specifica il valore del discendente di Windows per il tipo di carattere.
fwdMacAscender
Specifica il valore crescente di Macintosh per il tipo di carattere.
fwdMacDescender
Specifica il valore del discendente Macintosh per il tipo di carattere. Questo numero è in genere minore di zero. Misura lo spostamento firmato dalla linea di base del discendente più basso nel set di caratteri Macintosh.
fwdMacLineGap
Specifica il gap della riga Macintosh per il tipo di carattere. La spaziatura interlinea macintosh suggerita è uguale a fwdMacLineGap + fwdMacAscender - fwdMacDescender.
fwdTypoAscender
Specifica il valore crescente tipografico per il tipo di carattere.
fwdTypoDescender
Specifica il valore del discendente tipografico per il tipo di carattere. Questo valore specifica lo spostamento firmato del discendente più basso dalla baseline.
fwdTypoLineGap
Specifica lo spazio di riga tipografico per il tipo di carattere.
fwdAveCharWidth
Specifica la media aritmetica della larghezza di tutte le 26 lettere minuscole 'a' tramite 'z' dell'alfabeto latino e del carattere spazio. Se una delle 26 lettere minuscole non è presente, questo membro deve essere impostato uguale alla media ponderata di tutti i glifi nel tipo di carattere.
fwdMaxCharInc
Specifica l'incremento massimo del carattere di tutti i glifi nel tipo di carattere.
fwdCapHeight
Specifica l'altezza della linea ottica che descrive la parte superiore della "H" maiuscola nelle unità di carattere (FUnits). Questo potrebbe non essere lo stesso dell'altezza misurata del 'H.' maiuscolo. Se queste informazioni non esistono, fwdCapHeight deve essere impostato su zero, che indica che non è definito.
fwdXHeight
Specifica l'altezza della linea ottica che descrive l'altezza della "x" minuscola nelle unità di carattere. Potrebbe non essere uguale all'altezza misurata della "x". Un valore pari a zero indica che questo membro non è definito.
fwdSubscriptXSize
Specifica la larghezza dei caratteri suggerita (le dimensioni lungo la direzione di base) del carattere di parte secondaria.
fwdSubscriptYSize
Specifica l'altezza dei caratteri suggerita (le dimensioni lungo la direzione crescente) del carattere di parte secondaria.
fwdSubscriptXOffset
Specifica l'offset suggerito nella direzione della linea di base del carattere di sottoscrizione. L'offset è rispetto all'origine del carattere di base.
fwdSubscriptYOffset
Specifica l'offset suggerito nella direzione della linea di base del carattere di sottoscrizione. L'offset viene tratto dall'origine del carattere del carattere di base.
fwdSuperscriptXSize
Specifica la larghezza del carattere suggerita (la dimensione lungo la direzione della linea di base) del tipo di carattere superscript.
fwdSuperscriptYSize
Specifica l'altezza del carattere suggerita (la dimensione lungo la direzione crescente) del carattere di trascrizione.
fwdSuperscriptXOffset
Specifica l'offset suggerito nella direzione della linea di base del carattere di trascrizione. L'offset viene tratto dall'origine del carattere del carattere di base.
fwdSuperscriptYOffset
Specifica l'offset suggerito nella direzione della linea di base del carattere di trascrizione. L'offset viene tratto dall'origine del carattere del carattere di base.
fwdUnderscoreSize
Specifica la larghezza suggerita della barra di sottolineatura, nelle unità di carattere.
fwdUnderscorePosition
Specifica lo spostamento suggerito, nelle unità di carattere, dalla riga di base al centro della barra di sottolineatura.
fwdStrikeoutSize
Specifica la larghezza suggerita della barra di attacco, nelle coordinate del tipo di carattere.
fwdStrikeoutPosition
Specifica lo spostamento suggerito della barra di attacco dalla linea di base.
chFirstChar
Specifica il carattere supportato più basso nella tabella codici specificata in jWinCharSet. Questo campo viene fornito per la compatibilità di Windows 3.1.
chLastChar
Specifica il carattere supportato più alto nella tabella codici specificato in jWinCharSet. Questo campo viene fornito per la compatibilità di Windows 3.1.
chDefaultChar
Specifica il carattere predefinito nella tabella codici specificata in jWinCharSet. Questo campo viene fornito per la compatibilità di Windows 3.1.
chBreakChar
Specifica il carattere di interruzione nella tabella codici specificata in jWinCharSet. Questo campo viene fornito per la compatibilità di Windows 3.1.
wcFirstChar
Specifica il carattere supportato con il codice di carattere Unicode più piccolo.
wcLastChar
Specifica il carattere supportato con il codice carattere Unicode più grande.
wcDefaultChar
Specifica il carattere da sostituire quando un'applicazione richiede un carattere non supportato dal tipo di carattere.
wcBreakChar
Specifica il punto di codice del carattere spazio o il relativo equivalente.
ptlBaseline
Specifica una struttura POINTL che contiene la direzione di scrittura prevista di questo tipo di carattere. Ad esempio, un carattere latino tipico specifica un valore pari a (1.0).
ptlAspect
Specifica una struttura POINTL che contiene le proporzioni dei centri pixel per cui è stato progettato il tipo di carattere bitmap. Questo valore viene usato solo dai tipi di carattere bitmap.
ptlCaret
Specifica una struttura POINTL che contiene la direzione della direzione crescente del tipo di carattere. Ad esempio, il valore per un carattere latino nonitalico è (0,1) mentre un carattere latino corsivo potrebbe specificare un valore pari a (2,5).
rclFontBox
Specifica una struttura RECTL che descrive il rettangolo di selezione di tutti i glifi nello spazio di progettazione.
achVendId[4]
Specifica un identificatore di quattro caratteri per il fornitore di caratteri. Gli identificatori sono documentati nella specifica Microsoft TrueType.
cKerningPairs
Specifica il numero di coppie di kerning associate a questo tipo di carattere.
ulPanoseCulture
Specifica il modo in cui interpretare il numero di panose. Questo numero deve essere impostato su FM_PANOSE_CULTURE_LATIN per i tipi di carattere basati su latini. Per informazioni sulla struttura PANOSE, vedere la documentazione di Microsoft Window SDK.
panose
Matrice di 10 byte usata per descrivere le caratteristiche visive di un determinato carattere di tipo. Queste caratteristiche vengono quindi usate per associare il tipo di carattere ad altri tipi di carattere di aspetto simile con nomi diversi. Per informazioni sulla struttura PANOSE, vedere la documentazione di Window SDK.
Align
Questo membro viene definito solo se la costante _WIN64 è definita. L'unico scopo è garantire che questa struttura sia allineata correttamente all'architettura Itanium.
Commenti
Altre informazioni per un carattere di tipo possono essere specificate facoltativamente nella struttura IFIEXTRA .
La routine DrvQueryFont di un driver compila e restituisce una struttura IFIMETRICS in GDI.
La struttura IFIMETRICS definisce tutte le informazioni per un carattere di tipo compreso da GDI. La maggior parte dei membri sono valori FWORD, che sono quantità firmate a 16 bit nello spazio di progettazione. Se il tipo di carattere è un carattere raster, lo spazio di progettazione e lo spazio del dispositivo sono uguali e un'unità di carattere equivale alla distanza tra pixel.
Il sistema di coordinate nello spazio font/notionale è tale che la coordinata y aumenta in direzione verso l'alto e la coordinata x aumenta a destra.
Il membro Align della struttura IFIMETRICS causa una dimensione maggiore per i computer x64 rispetto ai computer x32, con ramificazioni per i file di formato carattere binario formattati in base a questa struttura. A partire da Windows Server 2003 SP1, è stata aggiunta una struttura di dimensioni fisse aggiuntive a Prntfont.h: PRINTIFI32. La struttura PRINTIFI32 è identica alla struttura IFIMETRICS, ad eccezione del fatto che non contiene un membro Align .
Requisiti
Requisito | Valore |
---|---|
Intestazione | winddi.h (include Winddi.h) |