Função ScriptPlace (usp10.h)

Gera a largura avançada do glifo e informações de deslocamento bidimensional da saída de ScriptShape.

Sintaxe

HRESULT ScriptPlace(
  [in]      HDC                  hdc,
  [in, out] SCRIPT_CACHE         *psc,
  [in]      const WORD           *pwGlyphs,
  [in]      int                  cGlyphs,
  [in]      const SCRIPT_VISATTR *psva,
  [in, out] SCRIPT_ANALYSIS      *psa,
  [out]     int                  *piAdvance,
  [out]     GOFFSET              *pGoffset,
  [out]     ABC                  *pABC
);

Parâmetros

[in] hdc

Opcional. Identificador para o contexto do dispositivo. Para obter mais informações, consulte Cache.

[in, out] psc

Ponteiro para uma estrutura SCRIPT_CACHE que identifica o cache de script.

[in] pwGlyphs

Ponteiro para um buffer de glifo obtido de uma chamada anterior para a função ScriptShape .

[in] cGlyphs

Contagem de glifos no buffer de glifo.

[in] psva

Ponteiro para uma matriz de estruturas SCRIPT_VISATTR indicando atributos visuais.

[in, out] psa

Ponteiro para uma estrutura SCRIPT_ANALYSIS . Na entrada, essa estrutura é obtida de uma chamada anterior para ScriptItemize. Na saída, essa estrutura contém valores recuperados pelo ScriptPlace.

[out] piAdvance

Ponteiro para uma matriz na qual essa função recupera informações de largura avançada.

[out] pGoffset

Opcional. Ponteiro para uma matriz de estruturas GOFFSET nas quais essa função recupera os deslocamentos x e y da combinação de glifos. Essa matriz deve ter o comprimento indicado por cGlyphs.

[out] pABC

Ponteiro para uma estrutura ABC na qual essa função recupera a largura abc para toda a execução.

Retornar valor

Retorna 0 se for bem-sucedido. A função retornará um valor HRESULT diferente de zero se não for bem-sucedida. O aplicativo pode testar o valor retornado com as macros SUCCEEDED e FAILED .

A função retornará E_PENDING se o cache de script especificado pelo parâmetro psc não contiver informações suficientes para colocar os glifos e o parâmetro hdc for definido como NULL para que a função não possa concluir o processo de posicionamento. O aplicativo deve configurar um contexto de dispositivo correto para a execução e chamar essa função novamente com o contexto de dispositivo apropriado e com todos os outros parâmetros da mesma forma.

Comentários

Consulte Exibindo texto com Uniscribe para ver uma discussão sobre o contexto no qual essa função normalmente é chamada.

A largura abc composta do item inteiro identifica quanto os glifos se sobrepõem à esquerda da posição inicial e à direita do comprimento implícito pela soma das larguras avançadas. A largura de avanço total da linha é exatamente abcA+abcB+abcC. Os valores abcA e abcC são mantidos como proporções da altura da célula representada em 8 bits e, portanto, são aproximadamente +/-1%. A largura total recuperada, que é a soma dos valores abcA+abcB+abcC indicados por piAdvance, é preciso para a resolução do mecanismo de formatação TrueType.

Todas as matrizes estão em ordem visual, a menos que o membro fLogicalOrder seja definido na estrutura SCRIPT_ANALYSIS indicada pelo parâmetro psa .

Importante Começando com Windows 8: para manter a capacidade de execução no Windows 7, um módulo que usa Uniscribe deve especificar Usp10.lib antes de gdi32.lib em sua lista de bibliotecas.
 

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho usp10.h
Biblioteca Usp10.lib
DLL Usp10.dll

Confira também

Exibindo texto com Uniscribe

GOFFSET

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_VISATTR

Scriptitemize

ScriptPlaceOpenType

Scriptshape

Uniscribe

Funções Uniscribe