Artikel-ID: 304929 - Geändert am: Donnerstag, 25. August 2005 - Version: 2.4

PRB: Benutzerdefinierte MAPI-Anbieter werden In Outlook 2002 nicht laden.

Auf dieser Seite

Alles erweitern | Alles schließen

Problembeschreibung

Ein benutzerdefinierter MAPI-Dienstanbieter wie z. B. ein Adressbuch, Transportanbieter oder Nachricht Anbieter, die Sie entwickelt haben möglicherweise nicht in Outlook 2002 geladen, selbst wenn der Anbieter in früheren Versionen von Outlook gearbeitet. Möglicherweise wird keine Fehlermeldungen angezeigt, wenn Outlook geladen.

Beispielsweise kann ein benutzerdefinierter Adressbuchanbieter, die in früheren Versionen von Outlook gearbeitet konnte nicht in Outlook 2002 geladen werden. Der einzige Hinweis darauf, die es nicht geladen wurden ist, dass Einträge aus Ihrem Anbieter nicht aufgelistet werden, wenn Sie das Adressbuch öffnen.

Ursache

QueryInterface -Funktionen werden zwei fehlerhafte Parameter Gültigkeitsprüfung von Makros verwendet.

Lösung

Um dieses Problem zu umgehen, entfernen Sie die fehlerhafte Makros aus die QueryInterface -Funktion. Wenn Sie Parameter-Validierung beibehalten möchten, erstellen Sie eigene Funktion oder Makro, um die Validierung behandelt. Je nach Ihrem Anbieter vielleicht Sie, dass andere Makros mit ähnlichen Namen auch entfernt werden müssen. Alle Makros in MAPI, die schließlich HrValidateParameters aufrufen, sind möglicherweise betroffen.

Auch, da Outlook nun QueryInterface für viele Objekte aufruft auf dem nicht vor dem Aufruf von QueryInterface, Achten Sie an diese Funktion im Transportanbieter um sicherzustellen, dass es ordnungsgemäß funktioniert.

Weitere Informationen

Viele benutzerdefinierte Anbieter basieren auf die Beispiele aus In MAPI , ein Microsoft Press-Buch von De La Cruz und Thaler. Diese Beispiele verwenden die folgenden Makros, um die Parameter zu überprüfen, die QueryInterface -Funktionen übergeben werden:
  • CheckParameters_IUnknown_QueryInterface (this, Riid, PpvObj);
  • Validate_IUnknown_QueryInterface (this, Riid, PpvObj);
Diese Makros fehlschlagen immer, verursacht QueryInterface zu einen Fehler zurück.

Diese Makros wurden für C++ geschrieben und sind in C++ nicht ordnungsgemäß funktionsfähig. In früheren Versionen von Outlook dies kein Problem verursachen, da QueryInterface für einige Objekte nie aufgerufen wird. Mit der MAPI-Version Outlook 2002 hat jedoch diese geändert.

Schritte zum Reproduzieren des Verhaltens

  1. Kompilieren Sie das ABWDS32-Beispiel, das im In MAPI beschrieben wird und folgen Sie die Anweisungen den Anbieter auf Ihren Testcomputer zu installieren.
  2. Folgen Sie die Anweisungen, um den Serverteil "WINDS für Server Messaging Host" zu installieren. In diesem Beispiel befindet sich im Ordner "Server" auf der das Buch-CD.
  3. Erstellen eines Profils in Outlook, die der Beispielanbieter verwendet.
  4. Starten Sie Outlook und öffnen Sie das Adressbuch.
  5. In Namen anzeigen aus der , Beachten Sie, dass der Beispielanbieter nicht aufgeführt ist.

Informationsquellen

De La Cruz, Irving und Thaler Les. in MAPI . Redmond: Microsoft Press, 1996.

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Messaging Application Programming Interface
  • Microsoft Outlook 2002 Standard Edition
Keywords: 
kbmt kbmsg kbprb KB304929 KbMtde
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 304929  (http://support.microsoft.com/kb/304929/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
 

SPRACHE AUSWÄHLEN

 

Related Support Centers