Freigeben über


IMAPITable::SeekRow

Gilt für: Outlook 2013 | Outlook 2016

Verschiebt den Cursor an eine bestimmte Position in der Tabelle.

HRESULT SeekRow(
BOOKMARK bkOrigin,
LONG lRowCount,
LONG FAR * lplRowsSought
);

Parameter

bkOrigin

[in] Das Lesezeichen, das die Startposition für den Suchvorgang angibt. Ein Lesezeichen kann mithilfe der IMAPITable::CreateBookmark-Methode erstellt werden, oder einer der folgenden vordefinierten Werte kann übergeben werden.

BOOKMARK_BEGINNING

Startet den Suchvorgang am Anfang der Tabelle.

BOOKMARK_CURRENT

Startet den Suchvorgang aus der Zeile in der Tabelle, in der sich der Cursor befindet.

BOOKMARK_END

Startet den Suchvorgang am Ende der Tabelle.

lRowCount

[in] Die Anzahl der zu verschiebenden Zeilen mit Vorzeichen, beginnend mit dem Lesezeichen, das durch den bkOrigin-Parameter identifiziert wird.

lplRowsSought

[out] Wenn lRowCount ein gültiger Zeiger bei der Eingabe ist, zeigt lplRowsSought auf die Anzahl der Zeilen, die im Suchvorgang verarbeitet wurden, wobei das Vorzeichen die Richtung der Suche vor oder zurück angibt. Wenn lRowCount negativ ist, ist lplRowsSought negativ.

Rückgabewert

S_OK

Der Suchvorgang war erfolgreich.

MAPI_E_BUSY

Ein weiterer Vorgang wird ausgeführt, der verhindert, dass der Zeilensuchevorgang gestartet wird. Entweder sollte der laufende Vorgang abgeschlossen oder beendet werden.

MAPI_E_INVALID_BOOKMARK

Das im bkOrigin-Parameter angegebene Lesezeichen ist ungültig, weil es entfernt wurde oder die letzte angeforderte Zeile überschreitet.

MAPI_W_POSITION_CHANGED

Der Aufruf war erfolgreich, aber das im bkOrigin-Parameter angegebene Lesezeichen wird nicht mehr in derselben Zeile wie bei der letzten Verwendung festgelegt. Wenn das Lesezeichen nicht verwendet wurde, befindet es sich nicht mehr an der gleichen Position wie beim Erstellen. Wenn diese Warnung zurückgegeben wird, sollte der Aufruf als erfolgreich behandelt werden. Verwenden Sie zum Testen auf diese Warnung das Makro HR_FAILED . Weitere Informationen finden Sie unter Verwenden von Makros für die Fehlerbehandlung.

Hinweise

Die IMAPITable::SeekRow-Methode richtet eine neue BOOKMARK_CURRENT Position für den Cursor ein. Der lRowCount-Parameter gibt die Anzahl der Zeilen an, die der Cursor bewegt, und die Bewegungsrichtung.

Wenn die resultierende Position hinter der letzten Zeile der Tabelle liegt, wird der Cursor nach der letzten Zeile positioniert. Wenn sich die resultierende Position vor der ersten Zeile der Tabelle befindet, wird der Cursor am Anfang der ersten Zeile positioniert.

Hinweise für Implementierer

Wenn die Zeile, auf die bkOrigin verweist, nicht mehr in der Tabelle vorhanden ist und Sie keine neue Position für das Lesezeichen festlegen können, geben Sie MAPI_E_INVALID_BOOKMARK zurück. Wenn die Zeile auf by_bkOrigin_no länger vorhanden ist und Sie eine neue Position für das Lesezeichen festlegen können, geben Sie MAPI_W_POSITION_CHANGED zurück.

Ein Lesezeichen, das auf eine Zeile zeigt, die aus der Tabellenansicht reduziert ist, kann weiterhin verwendet werden. Wenn der Aufrufer versucht, den Cursor auf ein solches Lesezeichen zu verschieben, verschieben Sie den Cursor in die nächste sichtbare Zeile und geben MAPI_W_POSITION_CHANGED zurück.

Sie können Lesezeichen für Positionen verschieben, die aus der Ansicht reduziert wurden, entweder zum Zeitpunkt der Verwendung oder zu dem Zeitpunkt, zu dem die Zeile reduziert wird. Wenn ein Lesezeichen zu dem Zeitpunkt verschoben wird, zu dem die Zeile reduziert wird, behalten Sie ein Bit im Lesezeichen bei, das angibt, ob das Lesezeichen seit seiner letzten Verwendung verschoben wurde oder, wenn es nie verwendet wurde, seit seiner Erstellung.

Hinweise für Aufrufer

Um eine Rückwärtsbewegung für SeekRow anzugeben, übergeben Sie einen negativen Wert in lRowCount. Um bis zum Anfang der Tabelle zu suchen, übergeben Sie null in lRowCount und den Wert BOOKMARK_BEGINNING in bkOrigin.

Wenn die Tabelle viele Zeilen enthält, kann der SeekRow-Vorgang langsam sein. Die Leistung kann auch beeinträchtigt werden, wenn eine Zeilenanzahl im Inhalt des lplRowsSought-Parameters zurückgegeben werden muss.

SeekRow gibt die Anzahl der Tatsächlich durchsuchten Zeilen (positiv oder negativ) in der Variablen zurück, auf die von lRowCount verwiesen wird. Im normalen Betrieb sollte derselbe Wert für lplRowsSought zurückgegeben werden, der für lRowCount übergeben wurde, es sei denn, die Suche hat den Anfang oder das Ende der Tabelle erreicht.

Legen Sie lRowCount nicht auf eine Zahl größer als 50 fest. Verwenden Sie die IMAPITable::SeekRowApprox-Methode , um eine größere Anzahl von Zeilen zu durchsuchen.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
MAPIProcessor.cpp
CMAPIProcessor::P rocessMailboxTable
MFCMAPI verwendet die IMAPITable::SeekRow-Methode , um den Anfang der Tabelle vor der Verarbeitung zu suchen.

Siehe auch

IMAPITable::CreateBookmark

IMAPITable::FindRow

IMAPITable::QueryRows

IMAPITable::SeekRowApprox

IMAPITable : IUnknown

MFCMAPI (engl.) als ein Codebeispiel