IMAPITable::QueryPosition

适用于:Outlook 2013 | Outlook 2016

根据小数部分值检索游标的当前表行位置。

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

参数

lpulRow

[out]指向当前行号的指针。 行号从零开始;表中的第一行为零。

lpulNumerator

[out]指向标识表位置的分数的分子的指针。

lpulDenominator

[out]指向标识表位置的分数分母的指针。 lpulDenominator 参数不能为零。

返回值

S_OK

方法在 lpulRowlpulNumeratorlpulDenominator 中返回了有效值。

备注

IMAPITable::QueryPosition 方法确定当前行位置,并返回当前行的编号和指示其相对于表末尾位置的小数值。 MAPI 将当前行定义为要读取的下一行。

针对实现者的说明

无需为 lpulDenominator 参数返回表中的确切行数;它可以是近似值。

如果无法确定当前行,请在 lpulRow 中返回值 0xFFFFFFFF。

给调用方的说明

可以使用 QueryPosition 在滚动条中定位滚动框。 例如,在包含 100 行的表中,如果 QueryPositionlpulNumerator 参数中返回值 75,在 lpulDenominator 参数中返回 100,在 lpulRow 参数中返回 75,则可以在滚动条上以 3/4 的方式放置滚动框。

不要依赖于 lpulDenominator 中的值是表中的行数。 QueryPosition 不能始终标识游标所在的确切行。

QueryPosition 的调用可能涉及大量内存,尤其是对于大型分类表。 如果 lpulRow 参数设置为 0xFFFFFFFF, 则 QueryPosition 需要太多内存来确定当前行。 调用 IMAPITable::SeekRowApprox 方法,将表定位到由 lpulNumerator 和 lpulDenominator 参数标识的行。 但是,如果内存不是因素,则并非总是期望 SeekRowApprox 建立为 QueryPosition 所在的同一行的当前位置。

另请参阅

IMAPITable::SeekRowApprox
IMAPITable : IUnknown