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.
FM_TYPE_LICENSED
FM_NO_EMBEDDING
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)

Vedi anche

DrvQueryFont

IFIEXTRA

PATHOBJ