IMAPITable::QueryPosition
Gilt für: Outlook 2013 | Outlook 2016
Ruft die aktuelle Tabellenzeilenposition des Cursors basierend auf einem Bruchwert ab.
HRESULT QueryPosition(
ULONG FAR * lpulRow,
ULONG FAR * lpulNumerator,
ULONG FAR * lpulDenominator
);
Parameter
lpulRow
[out] Zeiger auf die Nummer der aktuellen Zeile. Die Zeilennummer ist nullbasiert; Die erste Zeile in der Tabelle ist 0 (null).
lpulNumerator
[out] Zeiger auf den Zähler für den Bruch, der die Tabellenposition identifiziert.
lpulDenominator
[out] Zeiger auf den Nenner für den Bruch, der die Tabellenposition identifiziert. Der lpulDenominator-Parameter darf nicht 0 (null) sein.
Rückgabewert
S_OK
Die Methode hat gültige Werte in lpulRow, lpulNumerator und lpulDenominator zurückgegeben.
Hinweise
Die IMAPITable::QueryPosition-Methode bestimmt die aktuelle Zeilenposition und gibt sowohl die Nummer der aktuellen Zeile als auch einen Bruchwert zurück, der die relative Position zum Ende der Tabelle angibt. MAPI definiert die aktuelle Zeile als nächste Zeile, die gelesen werden soll.
Hinweise für Implementierer
Sie müssen nicht die genaue Anzahl der Zeilen in der Tabelle für den lpulDenominator-Parameter zurückgeben. dies kann eine Näherung sein.
Wenn Sie die aktuelle Zeile nicht ermitteln können, geben Sie den Wert 0xFFFFFFFF in lpulRow zurück.
Hinweise für Aufrufer
Sie können QueryPosition verwenden, um ein Bildlauffeld in einer Bildlaufleiste zu positionieren. Wenn QueryPosition beispielsweise in einer Tabelle mit 100 Zeilen einen Wert von 75 im lpulNumerator-Parameter , 100 im lpulDenominator-Parameter und 75 im lpulRow-Parameter zurückgibt, können Sie das Bildlauffeld 3/4 des Weges über die Bildlaufleiste positionieren.
Verlassen Sie sich nicht darauf, dass der Wert in lpulDenominator die Anzahl der Zeilen in der Tabelle darstellt. QueryPosition kann nicht immer die genaue Zeile identifizieren, auf der der Cursor positioniert ist.
Ein Aufruf von QueryPosition kann große Mengen an Arbeitsspeicher umfassen, insbesondere bei großen kategorisierten Tabellen. Wenn der lpulRow-Parameter auf 0xFFFFFFFF festgelegt ist, war zu viel Arbeitsspeicher für QueryPosition erforderlich, um die aktuelle Zeile zu bestimmen. Rufen Sie die IMAPITable::SeekRowApprox-Methode auf, um die Tabelle in der Zeile zu positionieren, die durch die Parameter lpulNumerator und lpulDenominator identifiziert wird. Erwarten Sie jedoch nicht immer, dass SeekRowApprox die aktuelle Position der gleichen Zeile hat , die QueryPosition hätte, wenn der Arbeitsspeicher kein Faktor gewesen wäre.