Freigeben über


IMAPISupport::Notify

Gilt für: Outlook 2013 | Outlook 2016

Sendet eine Benachrichtigung über ein angegebenes Ereignis an eine Empfehlungsquelle, die sich ursprünglich über die IMAPISupport::Subscribe-Methode für die Benachrichtigung registriert hat.

HRESULT Notify(
LPNOTIFKEY lpKey,
ULONG cNotification,
LPNOTIFICATION lpNotifications,
ULONG FAR * lpulFlags
);

Parameter

lpKey

[in] Ein Zeiger auf den Benachrichtigungsschlüssel für das Quellobjekt "Advise". Der lpKey-Parameter darf nicht NULL sein.

cNotification

[in] Die Anzahl der Benachrichtigungsstrukturen, auf die der lpNotifications-Parameter verweist.

lpNotifications

[in] Ein Zeiger auf ein Array von NOTIFICATION-Strukturen , die ausstehende Benachrichtigungen beschreiben.

lpulFlags

[in, out] Eine Bitmaske von Flags, die den Benachrichtigungsprozess steuert. Bei der Eingabe kann das folgende Flag festgelegt werden:

  • MAPI_UNICODE

    Die Zeichenfolgen in den Benachrichtigungsstrukturen, auf die lpNotifications verweisen, sind im Unicode-Format. Wenn das MAPI_UNICODE-Flag nicht festgelegt ist, liegen die Zeichenfolgen im ANSI-Format vor.

    Bei der Ausgabe kann MAPI das folgende Flag festlegen:

  • NOTIFY_CANCELED

    Eine Rückruffunktion hat eine synchrone Benachrichtigung abgebrochen.

Rückgabewert

S_OK

Die Benachrichtigungen wurden erfolgreich generiert.

Hinweise

Die IMAPISupport::Notify-Methode wird für alle Dienstanbieterunterstützungsobjekte implementiert. Dienstanbieter rufen Notify auf, um anzufordern, dass MAPI eine Benachrichtigung für eine Empfehlungssenke generiert, die zuvor über die IMAPISupport::Subscribe-Methode für die Benachrichtigung registriert wurde.

Notify kopiert die Strukturen, auf die der lpNotifications-Parameter verweist, in den Arbeitsspeicher und ruft die IMAPIAdviseSink::OnNotify-Methode der entsprechenden Empfehlungssenke auf. Wenn OnNotify mit der Benachrichtigung abgeschlossen ist, wird der beteiligte Arbeitsspeicher freigegeben. Der Aufrufer muss keinen Speicher zuordnen. MAPI führt alle erforderlichen Speicherbelegungen durch.

Hinweise für Aufrufer

Der im lpKey-Parameter übergebene Benachrichtigungsschlüssel sollte mit dem Schlüssel identisch sein, der in lpKey an die IMAPISupport::Subscribe-Methode übergeben wird. Viele Anbieter verwenden den Eintragsbezeichner der Empfehlungsquelle als Schlüssel, aber andere Daten, z. B. ein Dateipfad, können verwendet werden. MAPI verwendet diesen Schlüssel, um alle Registrierungen für Benachrichtigungen über die identifizierte Empfehlungsquelle zu finden.

Stellen Sie sicher, dass Sie das lpEntryID-Element der Benachrichtigungsstruktur auf einen langfristigen Eintragsbezeichner festlegen.

Wenn Sie das NOTIFY_SYNC-Flag für den Subscribe-Aufruf für eine der ausstehenden Benachrichtigungen festlegen, ruft Notify vor der Rückgabe die Rückruffunktionen der IMAPIAdviseSink::OnNotify-Methode auf. Eine Empfehlungssenke kann manuell oder durch Aufrufen von HrAllocAdviseSink erstellt werden. Die Funktion HrAllocAdviseSink ermöglicht es dem Aufrufer, eine Rückruffunktion anzugeben, die Notify-Aufrufe als Teil der Benachrichtigung angibt. Die Rückruffunktion entspricht dem NOTIFCALLBACK-Prototyp . Rückruffunktionen, die von Clients implementiert werden, geben immer S_OK zurück. Rückruffunktionen, die von Dienstanbietern implementiert werden, können CALLBACK_DISCONTINUE zurückgeben.

Wenn eine Rückruffunktion CALLBACK_DISCONTINUE zurückgibt, beendet MAPI das Senden von Benachrichtigungen und gibt NOTIFY_CANCELED im lpulFlags-Parameter der Notify-Methode zurück. Sie können davon ausgehen, dass der Prozess inaktiv ist und nicht mehr Benachrichtigungen für diesen Prozess generiert. Wenn Notify in lpulFlags 0 zurückgibt, ist der Prozess weiterhin aktiv, und Sie sollten weiterhin Benachrichtigungen senden.

Wenn Sie synchrone Benachrichtigungen verwenden, sollten Sie Darauf achten, Deadlocksituationen zu vermeiden.

Weitere Informationen zum Benachrichtigungsprozess finden Sie unter Ereignisbenachrichtigung in MAPI.

Siehe auch