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
方法在 lpulRow、 lpulNumerator 和 lpulDenominator 中返回了有效值。
备注
IMAPITable::QueryPosition 方法确定当前行位置,并返回当前行的编号和指示其相对于表末尾位置的小数值。 MAPI 将当前行定义为要读取的下一行。
针对实现者的说明
无需为 lpulDenominator 参数返回表中的确切行数;它可以是近似值。
如果无法确定当前行,请在 lpulRow 中返回值 0xFFFFFFFF。
给调用方的说明
可以使用 QueryPosition 在滚动条中定位滚动框。 例如,在包含 100 行的表中,如果 QueryPosition 在 lpulNumerator 参数中返回值 75,在 lpulDenominator 参数中返回 100,在 lpulRow 参数中返回 75,则可以在滚动条上以 3/4 的方式放置滚动框。
不要依赖于 lpulDenominator 中的值是表中的行数。 QueryPosition 不能始终标识游标所在的确切行。
对 QueryPosition 的调用可能涉及大量内存,尤其是对于大型分类表。 如果 lpulRow 参数设置为 0xFFFFFFFF, 则 QueryPosition 需要太多内存来确定当前行。 调用 IMAPITable::SeekRowApprox 方法,将表定位到由 lpulNumerator 和 lpulDenominator 参数标识的行。 但是,如果内存不是因素,则并非总是期望 SeekRowApprox 建立为 QueryPosition 所在的同一行的当前位置。