HrQueryAllRows

Gilt für: Outlook 2013 | Outlook 2016

Ruft alle Zeilen einer Tabelle ab.

Eigenschaft Wert
Headerdatei
Mapiutil.h
Implementiert von:
MAPI
Aufgerufen von:
Clientanwendungen und Dienstanbieter
HRESULT HrQueryAllRows(
  LPMAPITABLE ptable,
  LPSPropTagArray ptaga,
  LPSRestriction pres,
  LPSSortOrderSet psos,
  LONG crowsMax,
  LPSRowSet FAR * pprows
);

Parameter

ptable

[in] Zeiger auf die MAPI-Tabelle, aus der Zeilen abgerufen werden.

ptaga

[in] Zeiger auf eine SPropTagArray-Struktur , die ein Array von Eigenschaftstags enthält, die Tabellenspalten angeben. Diese Tags werden verwendet, um die spezifischen Spalten auszuwählen, die abgerufen werden sollen. Wenn der ptaga-Parameter NULL ist, ruft HrQueryAllRows den gesamten Spaltensatz der aktuellen Tabellenansicht ab, der im ptable-Parameter übergeben wird.

Pres

[in] Zeiger auf eine SRestriction-Struktur , die Abrufeinschränkungen enthält. Wenn der pres-Parameter NULL ist, trifft HrQueryAllRows keine Einschränkungen.

Psos

[in] Zeiger auf eine SSortOrderSet-Struktur , die die Sortierreihenfolge der abzurufenden Spalten identifiziert. Wenn der psos-Parameter NULL ist, wird die Standardsortierreihenfolge für die Tabelle verwendet.

crowsMax

[in] Maximale Anzahl der abzurufenden Zeilen. Wenn der Wert des parameters crowsMax 0 (null) ist, wird keine Beschränkung für die Anzahl der abgerufenen Zeilen festgelegt.

Pprows

[out] Zeiger auf einen Zeiger auf die zurückgegebene SRowSet-Struktur , die ein Array von Zeigern auf die abgerufenen Tabellenzeilen enthält.

Rückgabewert

S_OK

Der Aufruf hat die erwarteten Zeilen einer Tabelle abgerufen.

MAPI_E_TABLE_TOO_BIG

Die Anzahl der Zeilen in der Tabelle ist größer als die Anzahl, die für den crowsMax-Parameter übergeben wird.

Hinweise

Eine Clientanwendung oder ein Dienstanbieter hat keine Kontrolle über die Anzahl der Zeilen, die HrQueryAllRows abruft, außer durch die Erzwingung einer Einschränkung, auf die der pres-Parameter verweist. Der CrowsMax-Parameter beschränkt den Abruf nicht auf eine bestimmte Anzahl von Tabellenzeilen, sondern definiert eine maximale Menge an Arbeitsspeicher, die für alle abgerufenen Zeilen verfügbar ist. Der einzige Schutz vor massivem Speicherüberlauf ist die Stopgap-Funktion, die durch festlegen von crowsMax bereitgestellt wird. Die Fehlerrückgabe MAPI_E_TABLE_TOO_BIG bedeutet, dass die Tabelle zu viele Zeilen enthält, um alle gleichzeitig im Arbeitsspeicher gespeichert zu werden.

Tabellen, die in der Regel klein sind, z. B. eine Nachrichtenspeichertabelle oder eine Anbietertabelle, können in der Regel sicher mit HrQueryAllRows abgerufen werden. Tabellen, bei deren Risiko sehr groß ist, z. B. eine Inhaltstabelle oder sogar eine Empfängertabelle, sollten in Unterabschnitten mithilfe der IMAPITable::QueryRows-Methode durchlaufen werden.

Wenn Tabelleneigenschaften beim Aufruf von HrQueryAllRows nicht definiert sind, werden sie mit Eigenschaftentyp PT_NULL und Eigenschaftenbezeichner zurückgegeben PROP_ID_NULL