Compartilhar via


Função STROBJ_bEnumPositionsOnly (winddi.h)

A função STROBJ_bEnumPositionsOnly enumera identidades e posições de glifo para uma cadeia de caracteres de texto especificada, mas não cria bitmaps de glifo armazenados em cache.

Sintaxe

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

Parâmetros

pstro

Um ponteiro fornecido pelo chamador para uma estrutura STROBJ que descreve uma cadeia de caracteres de texto. Normalmente, essa é a estrutura STROBJ recebida pela função DrvTextOut do driver.

pc

Um endereço fornecido pelo chamador para receber o número fornecido por GDI de estruturas GLYPHPOS apontadas pelo ponteiro em ppgpos.

ppgpos

Um endereço fornecido pelo chamador que recebe um ponteiro fornecido por GDI para uma matriz de estruturas GLYPHPOS . (Consulte a seção Comentários a seguir.)

Retornar valor

O valor retornado será TRUE se mais glifos permanecerem para serem enumerados ou FALSE se a enumeração for concluída. O valor retornado será DDI_ERROR se os glifos não puderem ser enumerados e um código de erro for registrado.

Comentários

A função STROBJ_bEnumPositionsOnly normalmente é chamada de dentro da função DrvTextOut de um driver. Ele executa as mesmas operações que STROBJ_bEnum com uma exceção importante – o GDI não cria bitmaps armazenados em cache dos glifos. A função STROBJ_bEnum pressupõe que o driver eventualmente precisará desses bitmaps. No entanto, muitas impressoras mais recentes contêm rasterizadores internos e, portanto, não precisam de GDI para renderizar glifos. Para essas impressoras, eliminar a renderização automática e o cache de bitmaps de glifo na memória do servidor fornece uma economia considerável de tempo de processamento e alocação de memória.

Para impressoras que dão suporte à rasterização de glifo interno, as seguintes regras devem ser seguidas:

  • O driver deve definir o sinalizador GCAPS_FONT_RASTERIZER em sua estrutura DEVINFO .
  • A função DrvTextOut do driver deve chamar STROBJ_bEnumPositionsOnly em vez de STROBJ_bEnum.
  • Se o trabalho de impressão incluir uma fonte que o dispositivo não pode rasterizar internamente, o driver deverá chamar FONTOBJ_cGetGlyphs para obter bitmaps de glifo.
  • Se um driver precisar determinar a posição provável da impressora depois que uma cadeia de caracteres de texto tiver sido impressa, mas não precisar de um glifo de fonte, ele poderá chamar STROBJ_bGetAdvanceWidths.
Como a GDI não cria bitmaps armazenados em cache dos glifos, o conteúdo da união GLYPHDEF dentro de cada estrutura GLYPHPOS retornada será NULL.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Windows 2000 e versões posteriores dos sistemas operacionais Windows.
Plataforma de Destino Universal
Cabeçalho winddi.h (inclua Winddi.h)
Biblioteca Win32k.lib
DLL Win32k.sys

Confira também

DrvTextOut

FONTOBJ_cGetGlyphs

GLYPHDEF

GLIFOPOS

STROBJ

STROBJ_bEnum

STROBJ_bGetAdvanceWidths