Compartilhar via


Função ScriptXtoCP (usp10.h)

Gera a borda à esquerda ou à direita de um cluster de caracteres lógicos do deslocamento x de uma execução.

Sintaxe

HRESULT ScriptXtoCP(
  [in]  int                   iX,
  [in]  int                   cChars,
  [in]  int                   cGlyphs,
  [in]  const WORD            *pwLogClust,
  [in]  const SCRIPT_VISATTR  *psva,
  [in]  const int             *piAdvance,
  [in]  const SCRIPT_ANALYSIS *psa,
  [out] int                   *piCP,
  [out] int                   *piTrailing
);

Parâmetros

[in] iX

Deslocamento, em unidades lógicas, do final da execução especificada pelo membro fLogicalOrder da estrutura SCRIPT_ANALYSIS indicada pelo parâmetro psa .

[in] cChars

Contagem de pontos de código lógicos na execução.

[in] cGlyphs

Contagem de glifos na execução.

[in] pwLogClust

Ponteiro para uma matriz de clusters lógicos.

[in] psva

Ponteiro para uma matriz de estruturas de SCRIPT_VISATTR que contém os atributos visuais do glifo.

[in] piAdvance

Ponteiro para uma matriz de larguras avançadas.

[in] psa

Ponteiro para uma estrutura SCRIPT_ANALYSIS . O membro fLogicalOrder indica TRUE para usar a borda superior da execução ou FALSE para usar a borda à direita.

[out] piCP

Ponteiro para um buffer no qual essa função recupera a posição do caractere correspondente à coordenada x.

[out] piTrailing

Ponteiro para um buffer no qual essa função recupera a distância, em pontos de código, da borda superior do caractere lógico até a posição iX . Se esse valor for 0, a posição iX estará na borda superior do caractere lógico. Para obter mais informações, consulte a seção Comentários.

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 .

Comentários

Os valores passados para essa função normalmente são os resultados de chamadas anteriores para outras funções Uniscribe. Consulte Gerenciando o Posicionamento do Cursor e o Teste de Ocorrência para obter detalhes.

As bordas à esquerda e à direita do caractere lógico são determinadas pela direção do texto na execução (da esquerda para a direita ou da direita para a esquerda). Para a direção da esquerda para a direita, a borda superior é a mesma que a borda esquerda. Para a direção da direita para a esquerda, a borda superior é a borda direita.

Para scripts nos quais o cursor é colocado convencionalmente no meio de um cluster, por exemplo, árabe e hebraico, a posição de caractere recuperada pode ser para qualquer ponto de código na linha. Nesse caso, o parâmetro piTrailing é definido como 0 ou 1.

Para scripts nos quais o cursor é convencionalmente ajustado para os limites de um cluster, a posição de caractere recuperada é sempre a posição do primeiro ponto de código em um cluster (considerado logicamente). O parâmetro piTrailing é definido como 0 ou para o número de pontos de código no cluster.

A posição de cursor apropriada para um clique do mouse é sempre a posição de caractere recuperada mais a distância indicada por piTrailing.

Quando iX indica uma posição fora da execução, ScriptXtoCP atua como se houvesse um caractere infinitamente grande extra além de cada extremidade da execução. Isso resulta no comportamento mostrado na tabela a seguir.

Posição iX (fora da execução) Result
Antes da execução, ou seja: iX< 0 se a execução for da esquerda para a direita ou iX>= soma de avanços se a execução for da direita para a esquerda O valor de piCP é -1 e o valor de piTrailing é 0
Após a execução, ou seja: iX>= soma de avanços se a execução for da esquerda para a direita ou iX< 0 se a execução for da direita para a esquerda O valor de piCP é o valor de cChars e o valor de piTrailing é 1
 
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
Redistribuível Internet Explorer 5 ou posterior no Windows Me/98/95

Confira também

SCRIPT_ANALYSIS

SCRIPT_VISATTR

Uniscribe

Funções Uniscribe