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.
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 .
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 |