Compartilhar via


Função ScriptPlaceOpenType (usp10.h)

Gera glifos e atributos visuais para uma execução Unicode com informações opentype da saída de ScriptShapeOpenType.

Sintaxe

HRESULT ScriptPlaceOpenType(
  [in, optional]  HDC                    hdc,
  [in, out]       SCRIPT_CACHE           *psc,
  [in, out]       SCRIPT_ANALYSIS        *psa,
  [in]            OPENTYPE_TAG           tagScript,
  [in]            OPENTYPE_TAG           tagLangSys,
  [in, optional]  int                    *rcRangeChars,
  [in, optional]  TEXTRANGE_PROPERTIES   **rpRangeProperties,
  [in]            int                    cRanges,
  [in]            const WCHAR            *pwcChars,
  [in]            WORD                   *pwLogClust,
  [in]            SCRIPT_CHARPROP        *pCharProps,
  [in]            int                    cChars,
  [in]            const WORD             *pwGlyphs,
  [in]            const SCRIPT_GLYPHPROP *pGlyphProps,
  [in]            int                    cGlyphs,
  [out]           int                    *piAdvance,
  [out]           GOFFSET                *pGoffset,
  [out, optional] ABC                    *pABC
);

Parâmetros

[in, optional] hdc

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, out] psa

Ponteiro para uma estrutura SCRIPT_ANALYSIS obtida de uma chamada anterior para ScriptItemizeOpenType. Essas estruturas identificam o mecanismo de formatação que rege a lista gerada de glifos e suas larguras associadas e deslocamentos de posicionamento x e y.

Como alternativa, o aplicativo pode definir esse parâmetro como NULL para receber resultados não filtrados.

[in] tagScript

Uma estrutura OPENTYPE_TAG que contém a marca de script OpenType para o sistema de gravação usar.

[in] tagLangSys

Uma estrutura OPENTYPE_TAG que contém a marca de idioma OpenType para o sistema de escrita.

[in, optional] rcRangeChars

Matriz do número de caracteres em cada intervalo. O número de membros é indicado no parâmetro cRanges . O total de valores deve ser igual ao valor de cChars.

[in, optional] rpRangeProperties

Matriz de estruturas TEXTRANGE_PROPERTIES definindo propriedades para cada intervalo. O número de elementos é definido pelo parâmetro cRanges .

[in] cRanges

O número de intervalos de recursos OpenType.

[in] pwcChars

Ponteiro para uma matriz de caracteres Unicode que contém a execução. O número de elementos é definido pelo parâmetro cRanges .

[in] pwLogClust

Ponteiro para uma matriz de informações de cluster lógico. Cada elemento na matriz corresponde a um caractere na matriz definida por pwcChars. O valor de cada elemento é o deslocamento do primeiro glifo na execução para o primeiro glifo no cluster que contém o caractere correspondente. Observe que, quando o membro fRTL da estrutura SCRIPT_ANALYSIS é definido como TRUE, os elementos em pwLogClust diminuem à medida que a matriz é lida.

[in] pCharProps

Ponteiro para uma matriz de valores de propriedade de caractere na execução Unicode.

[in] cChars

Número de caracteres na execução Unicode.

[in] pwGlyphs

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

[in] pGlyphProps

Ponteiro para uma matriz de atributos para cada um dos glifos a serem recuperados. O número de valores é igual ao valor de cGlyphs. Como há uma propriedade de glifo por glifo, esse parâmetro tem o número de elementos indicados por cGlyphs.

[in] cGlyphs

Contagem de glifos em um buffer de matriz de glifo.

[out] piAdvance

Ponteiro para uma matriz, de comprimento indicado por cGlyphs, em que essa função recupera informações de largura avançada .

[out] pGoffset

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

[out, optional] pABC

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

Valor retornado

Retorna 0 se for bem-sucedido. A função retornará um valor HRESULT diferente de zero se não for bem-sucedida. Em todos os casos de erro, os valores de saída são indefinidos. O aplicativo pode testar o valor retornado com as macros SUCCEEDED e FAILED .

A função retornará E_OUTOFMEMORY se o comprimento do buffer de saída indicado por cGlyphs for muito pequeno. O aplicativo pode tentar chamar novamente com buffers maiores.

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 passado 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 valor apropriado em hdc e com todos os outros parâmetros da mesma forma.

Comentários

Essa função é preferencial em relação à função ScriptPlace mais antiga. Algumas vantagens de ScriptPlaceOpenType incluem o seguinte:

  • Os parâmetros correspondem diretamente às marcas OpenType em tabelas de layout de fonte.
  • Os parâmetros definem os recursos aplicados a cada caractere. A entrada é dividida em intervalos e cada intervalo tem propriedades OpenType associadas a ela.
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 A partir do 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

   
Cliente mínimo com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho usp10.h
Biblioteca Usp10.lib
DLL Usp10.dll
Redistribuível Usp10.dll versão 1.600 ou superior no Windows XP

Confira também

Exibindo texto com Uniscribe

GOFFSET

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

SCRIPT_CHARPROP

SCRIPT_GLYPHPROP

ScriptItemizeOpenType

Scriptplace

ScriptShapeOpenType

TEXTRANGE_PROPERTIES

Funções Uniscribe