Compartilhar via


IMAPITable::QueryPosition

Aplica-se a: Outlook 2013 | Outlook 2016

Recupera a posição atual da linha de tabela do cursor, com base em um valor fracionário.

HRESULT QueryPosition(
ULONG FAR * lpulRow,
ULONG FAR * lpulNumerator,
ULONG FAR * lpulDenominator
);

Parâmetros

lpulRow

[out] Ponteiro para o número da linha atual. O número da linha é baseado em zero; a primeira linha na tabela é zero.

lpulNumerator

[out] Ponteiro para o numerador da fração que identifica a posição da tabela.

lpulDenominator

[out] Ponteiro para o denominador da fração que identifica a posição da tabela. O parâmetro lpulDenominator não pode ser zero.

Valor de retorno

S_OK

O método retornou valores válidos em lpulRow, lpulNumerator e lpulDenominator.

Comentários

O método IMAPITable::QueryPosition determina a posição da linha atual e retorna o número da linha atual e um valor fracionário que indica sua posição relativa para o final da tabela. MAPI define a linha atual como a próxima linha a ser lida.

Observações para implementadores

Você não precisa retornar o número exato de linhas na tabela para o parâmetro lpulDenominator ; pode ser uma aproximação.

Se você não puder determinar a linha atual, retorne um valor de 0xFFFFFFFF em lpulRow.

Notas para chamadores

Você pode usar QueryPosition para posicionar uma caixa de rolagem em uma barra de rolagem. Por exemplo, em uma tabela que contém 100 linhas, se QueryPosition retornar um valor de 75 no parâmetro lpulNumerator , 100 no parâmetro lpulDenominator e 75 no parâmetro lpulRow , você poderá posicionar a caixa de rolagem 3/4 do caminho através da barra de rolagem.

Não confie no valor em lpulDenominator sendo o número de linhas na tabela. A QueryPosition nem sempre consegue identificar a linha exata na qual o cursor está posicionado.

Uma chamada para QueryPosition pode envolver grandes quantidades de memória, especialmente para tabelas categorizadas grandes. Se o parâmetro lpulRow estiver definido como 0xFFFFFFFF, foi necessária muita memória para QueryPosition determinar a linha atual. Chame o método IMAPITable::SeekRowApprox para posicionar a tabela na linha identificada pelos parâmetros lpulNumerator e lpulDenominator . No entanto, nem sempre espere que SeekRowApprox estabeleça como a posição atual que a mesma linha QueryPosition teria se a memória não tivesse sido um fator.

Confira também

IMAPITable::SeekRowApprox
IMAPITable : IUnknown