Freigeben über


IMAPIContainer::SetSearchCriteria

Gilt für: Outlook 2013 | Outlook 2016

Legt Suchkriterien für den Container fest.

HRESULT SetSearchCriteria(
  LPSRestriction lpRestriction,
  LPENTRYLIST lpContainerList,
  ULONG ulSearchFlags
);

Parameter

lpRestriction

[in] Ein Zeiger auf eine SRestriction-Struktur , die die Suchkriterien definiert. Wenn NULL im lpRestriction-Parameter übergeben wird, werden die suchkriterien, die zuletzt für diesen Container verwendet wurden, erneut verwendet. NULL sollte in lpRestriction für die erste Suche in einem Container nicht übergeben werden.

lpContainerList

[in] Ein Zeiger auf ein Array von Eintragsbezeichnern, die Container darstellen, die in die Suche einbezogen werden sollen. Wenn ein Client NULL im lpContainerList-Parameter übergibt, werden die eintragsbezeichner, die zuletzt zum Durchsuchen dieses Containers verwendet wurden, für die neue Suche verwendet. Ein Client sollte null in lpContainerList für die erste Suche in einem Container nicht übergeben.

ulSearchFlags

[in] Eine Bitmaske von Flags, die steuern, wie die Suche ausgeführt wird. Die folgenden Flags können festgelegt werden:

BACKGROUND_SEARCH

Die Suche sollte relativ zu anderen Suchvorgängen mit normaler Priorität ausgeführt werden. Dieses Flag kann nicht gleichzeitig mit dem FOREGROUND_SEARCH-Flag festgelegt werden.

FOREGROUND_SEARCH

Die Suche sollte relativ zu anderen Suchvorgängen mit hoher Priorität ausgeführt werden. Dieses Flag kann nicht gleichzeitig mit dem BACKGROUND_SEARCH-Flag festgelegt werden.

NON_CONTENT_INDEXED_SEARCH

Die Suche sollte keine Inhaltsindizierung verwenden, um übereinstimmende Einträge zu finden. Dieses Flag ist nur für Exchange-Speicher gültig.

RECURSIVE_SEARCH

Die Suche sollte die im lpContainerList-Parameter angegebenen Container und alle ihre untergeordneten Container enthalten. Dieses Flag kann nicht gleichzeitig mit dem SHALLOW_SEARCH-Flag festgelegt werden.

RESTART_SEARCH

Die Suche sollte initiiert werden, wenn dies der erste Aufruf von SetSearchCriteria ist, oder neu gestartet werden, wenn die Suche inaktiv ist. Dieses Flag kann nicht gleichzeitig mit dem STOP_SEARCH-Flag festgelegt werden.

SHALLOW_SEARCH

Die Suche sollte nur in den containern suchen, die im lpContainerList-Parameter nach übereinstimmenden Einträgen angegeben sind. Dieses Flag kann nicht gleichzeitig mit dem RECURSIVE_SEARCH-Flag festgelegt werden.

STOP_SEARCH

Die Suche sollte beendet werden. Dieses Flag kann nicht gleichzeitig mit dem RESTART_SEARCH-Flag festgelegt werden.

Rückgabewert

S_OK

Die Suchkriterien wurden erfolgreich festgelegt.

MAPI_E_TOO_COMPLEX

Der Dienstanbieter unterstützt die angegebenen Suchkriterien nicht.

Hinweise

Die IMAPIContainer::SetSearchCriteria-Methode legt Suchkriterien für einen Container fest, der Suchvorgänge unterstützt, in der Regel ein Suchergebnisordner. Ein Suchergebnisordner enthält Links zu den Nachrichten, die den Suchkriterien entsprechen. die tatsächlichen Nachrichten werden weiterhin an ihren ursprünglichen Speicherorten gespeichert. Die einzigen eindeutigen Daten, die in einem Suchergebnisordner enthalten sind, ist die Inhaltstabelle. Die Inhaltstabelle eines Suchergebnisordners enthält die zusammengeführten Inhalte des Nachrichtenspeichers, nachdem die Sucheinschränkung angewendet wurde.

Ein Suchvorgang funktioniert nur für diese zusammengeführte Inhaltstabelle. Andere Suchergebnisordner werden nicht durchsucht. Die Suchergebnisse geben nur die Nachrichten zurück, die den Suchkriterien entsprechen. die Ordnerhierarchie wird nicht zurückgegeben.

Die Steuerung wird an den Client zurückgegeben, wenn die Suche abgeschlossen ist.

Hinweise für Implementierer

Adressbuchcontainer richten Suchkriterien durch Anwenden von Einschränkungen auf ihre Inhaltstabellen ein. Weitere Informationen zu Suchkriterien und Adressbuchcontainern finden Sie unter Implementieren der erweiterten Suche.

Sie sollten Öffnen- und Kopier-, Verschiebe- und Löschvorgänge für Nachrichten in Den Ordnern mit Suchergebnissen unterstützen, nicht für den Suchergebnisordner selbst. Lassen Sie nicht zu, dass Nachrichten in einem Suchergebnisordner erstellt oder kopiert werden.

Hinweise für Aufrufer

Um nach Nachrichtenempfängern zu suchen, legen Sie lpRestriction so fest, dass es auf eine Unterobjekteinschränkung verweist, wobei das ulSubObject-Element in der SSubRestriction-Struktur auf PR_MESSAGE_RECIPIENTS (PidTagMessageRecipients) festgelegt ist. Um nach Anlagen zu suchen, legen Sie den ulSubObject-Member auf PR_MESSAGE_ATTACHMENTS (PidTagMessageAttachments) fest. Legen Sie den lpRes-Member so fest, dass er auf eine Eigenschaftseinschränkung verweist, die die Suchkriterien für die Empfänger oder Anlagen beschreibt.

Um beispielsweise nach Dateianlagen mit der Erweiterung .mss zu suchen, legen Sie ulSubObject auf PR_MESSAGE_ATTACHMENTS und lpRes auf eine Eigenschaftseinschränkung fest, die PR_ATTACH_EXTENSION (PidTagAttachExtension) mit .mss entspricht.

Das Festlegen des FOREGROUND_SEARCH-Flags im ulSearchFlags-Parameter kann zu einer Verringerung der Systemleistung führen.

Sie können SetSearchCriteria verwenden, um die Suchkriterien einer bereits laufenden Suche zu ändern. Sie können neue Einschränkungen, neue Listen mit zu durchsuchenden Ordnern und eine neue Suchpriorität angeben, z. B. das Upgrade einer Suche auf eine höhere Priorität. Änderungen an der Suchpriorität führen nicht dazu, dass eine vorhandene Suche neu gestartet wird, aber andere Änderungen an Suchkriterien können dies tun.

Wenn Sie einen Suchergebnisordner verwenden, können Sie den Ordner entweder löschen oder zur späteren Verwendung offen lassen. Wenn Sie den Suchergebnisordner löschen, werden nur Nachrichtenlinks gelöscht. Die tatsächlichen Nachrichten verbleiben in ihren übergeordneten Ordnern.

Weitere Informationen zu Suchergebnisordnern finden Sie unter MAPI-Suchordner.

MFCMAPI-Referenz

Einen MFCMAP-Beispielcode finden Sie in der folgenden Tabelle.

Datei Funktion Kommentar
HierarchyTableDlg.cpp
CHierarchyTableDlg::OnEditSearchCriteria
MFCMAPI verwendet die IMAPIContainer::SetSearchCriteria-Methode , um Suchkriterien für einen Ordner zu schreiben, nachdem ein Benutzer ihn bearbeitet hat.

Siehe auch

IMAPIContainer::GetContentsTable

IMAPIContainer::OpenEntry

IMAPIFolder::CreateFolder

IMAPIFolder : IMAPIContainer

SPropertyRestriction

SRestriction

SSubRestriction

IMAPIContainer : IMAPIProp

MFCMAPI (engl.) als ein Codebeispiel