Condividi tramite


funzione STROBJ_bEnumPositionsOnly (winddi.h)

La funzione STROBJ_bEnumPositionsOnly enumera le identità e le posizioni del glifo per una stringa di testo specificata, ma non crea bitmap del glifo memorizzate nella cache.

Sintassi

ENGAPI BOOL STROBJ_bEnumPositionsOnly(
  STROBJ    *pstro,
  ULONG     *pc,
  PGLYPHPOS *ppgpos
);

Parametri

pstro

Puntatore fornito dal chiamante a una struttura STROBJ che descrive una stringa di testo. Si tratta in genere della struttura STROBJ ricevuta dalla funzione DrvTextOut del driver.

pc

Indirizzo fornito dal chiamante per ricevere il numero fornito da GDI di strutture GLYPHPOS a cui punta il puntatore in ppgpos.

ppgpos

Indirizzo fornito dal chiamante che riceve un puntatore fornito da GDI a una matrice di strutture GLYPHPOS . Vedere la sezione Osservazioni seguente.

Valore restituito

Il valore restituito è TRUE se rimangono più glifi da enumerare o FALSE se l'enumerazione è completa. Il valore restituito è DDI_ERROR se non è possibile enumerare i glifi e viene registrato un codice di errore.

Commenti

La funzione STROBJ_bEnumPositionsOnly viene in genere chiamata dall'interno della funzione DrvTextOut di un driver. Esegue le stesse operazioni di STROBJ_bEnum con un'eccezione importante – GDI non crea bitmap memorizzate nella cache dei glifi. La funzione STROBJ_bEnum presuppone che il driver richieda infine queste bitmap. Tuttavia, molte stampanti più recenti contengono rasterizzatori interni e pertanto non è necessario GDI per eseguire il rendering dei glifi. Per tali stampanti, eliminando il rendering automatico e la memorizzazione nella cache delle bitmap del glifo nella memoria server, si ottiene un notevole risparmio sia del tempo di elaborazione che dell'allocazione della memoria.

Per le stampanti che supportano la rasterizzazione interna del glifo, è necessario seguire le regole seguenti:

  • Il driver deve impostare il flag GCAPS_FONT_RASTERIZER nella struttura DEVINFO .
  • La funzione DrvTextOut del driver deve chiamare STROBJ_bEnumPositionsOnly anziché STROBJ_bEnum.
  • Se il processo di stampa include un tipo di carattere che il dispositivo non può rasterizzare internamente, il driver deve chiamare FONTOBJ_cGetGlyphs per ottenere le bitmap del glifo.
  • Se un driver deve determinare la probabile posizione della stampante dopo la stampa di una stringa di testo, ma non ha bisogno di un glifo del tipo di carattere, può chiamare STROBJ_bGetAdvanceWidths.
Poiché GDI non crea bitmap memorizzate nella cache dei glifi, il contenuto dell'unione GLYPHDEF all'interno di ogni struttura GLYPHPOS restituita sarà NULL.

Requisiti

Requisito Valore
Client minimo supportato Disponibile in Windows 2000 e versioni successive dei sistemi operativi Windows.
Piattaforma di destinazione Universale
Intestazione winddi.h (include Winddi.h)
Libreria Win32k.lib
DLL Win32k.sys

Vedi anche

DrvTextOut

FONTOBJ_cGetGlyphs

GLYPHDEF

GLYPHPOS

STROBJ

STROBJ_bEnum

STROBJ_bGetAdvanceWidths