Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

Vorgehensweise: Link zu MAPI-Funktionen

Office 2013 und höher

Letzte Änderung:Montag, 9. März 2015

Gilt für:Outlook

Es gibt drei Methoden zum Verknüpfen: implizite Verknüpfung, explizite Verknüpfung und die MAPI-Stub-Bibliothek mit neuen Hybridmodell bereitgestellt.

Verknüpfen mit der Mapi32.lib-Bibliothek in der Vergangenheit beteiligt MAPI-Funktionen in einer Messaginganwendung immer aufrufen. Diese enthalten, MAPI-Anrufe an die die Windows-MAPI-Stub-Bibliothek "Mapi32.dll", die die Anrufe an die Implementierung der standardmäßigen MAPI-Client zur Laufzeit dann weitergeleitet. Dieser Prozess der Anruf wird als implizite Verknüpfung bezeichnet. Links in der folgenden Abbildung zeigt ein Beispiel der implizite Verknüpfung in einem MAPI-Funktion Anruf Prozess verwendet. Der Prozess wird durch eine MAPI-Anwendung initiiert und umfasst die MAPI-Bibliothek (Mapi32.lib) und die Windows-MAPI-Stub (Mapi32.dll) und abgeschlossen ist, indem Sie die Outlook-MAPI-Client-Implementierung der MAPI-Stub (Msmapi32.dll).

Vergleich von impliziter und expliziter Verknüpfung

Vergleich von impliziter und expliziter Verknüpfung


Da der Standard-MAPI-Client Installation bei Bedarf mithilfe von Windows Installer (MSI) unterstützt, können Sie direkt auf die Outlook MAPI-Stub statt der MAPI-Bibliothek und Windows MAPI-Stub-messaging-Anwendungen entwickeln. Im rechten Teil der vorherigen Abbildung zeigt ein Beispiel für einen MAPI-Funktion Anruf-Prozess, beginnend mit einem MAPI-Anwendung suchen den Pfad und Namen der DLL-Datei für die Outlook MAPI-Stub (Schritt 2 im folgenden Abschnitt), und Aufrufe der Funktion in Outlook MAPI-Stub (Schritt 3 im folgenden Abschnitt). Das folgende Verfahren zeigt, wie MAPI-Funktionen aufrufen, indem explizite Verknüpfung.

Hinweis Hinweis

Diese Informationen zum Verknüpfen von expliziten möglicherweise auf Ihre Bedürfnisse mit der Einführung von den im folgenden Abschnitt beschriebenen MAPIStubLibrary.lib überflüssig. Wie die implizite Modell der neue Bibliothek alles verwaltet und implementiert die explizite verknüpfende Logik, die direkt Outlook MAPI lädt.

Weitere Informationen zum expliziten Verknüpfen finden Sie unter Verknüpfen explizit.

MAPI-API-Elemente ohne die MAPI-Bibliothek und den Windows-MAPI-Stub aufrufen

  1. Erstellen Sie eine globale Liste Funktionszeiger für jedes MAPI-API-Element, die Sie verwenden, in der Programmdatei.

    Das folgende Beispiel zeigt diesen Schritt.

    //Global MAPI function pointers
    LPMAPIINITIALIZE pfnMAPIInitialize = NULL;
    LPMAPIUNINITIALIZE pfnMAPIUninitialize = NULL;
    
  2. Erstellen Sie eine Funktion, die MAPI-Funktionen zum Verknüpfen der MAPI-DLL, der als Standard-MAPI-Client (beispielsweise Msmapi32.dll des Microsoft Outlook ) initialisiert. Führen Sie in dieser Funktion folgende Schritte aus:

    1. Laden Sie mapi32.dll aus dem entsprechenden Systemverzeichnis.

      X 64- oder X 86 systemintern

      %windir%\system32\mapi32.dll

      X 86 auf WoW-Modus

      %windir%\syswow64\mapi32.dll

    2. Call the FGetComponentPath function to get the path and DLL name that implements the MAPI subsystem. For more information, see Vorgehensweise: Wählen Sie eine bestimmte Version von MAPI zu laden.

    3. Laden der DLL-Datei durch Aufrufen der LoadLibrary -Funktion.

    4. Initialisieren Sie das MAPI-Funktion Zeiger Array durch Aufrufen der GetProcAddress -Funktion.

    Das folgende Beispiel zeigt die vorherigen Schritte:

    void InitializeMapiFunctions()
    {
        // Get the DLL path and name of the actual MAPI implementation.
        FGetComponentPath(g_szMapiComponentGUID, NULL, szMAPIDLL, MAX_PATH);
    
        // Load the DLL.
        hMod = LoadLibrary(szMAPIDLL);
    
        // Initialize MAPI functions.
        pfnMAPIInitialize = GetProcAddress(hMod, "MAPIInitialize");
        pfnMAPIUninitialize = GetProcAddress(hMod, "MAPIUninitialize");
    }
    
  3. Rufen Sie anschließend die Funktion, die Sie in Schritt 2 in Ihrer messaging-Anwendung erstellten, bevor Sie MAPI-API-Elemente aufrufen.

    Vorsicht Vorsicht

    Sie müssen die MAPI-Subsystems vor dem Schließen der Anwendung initialisieren.

    Das folgende Beispiel zeigt diesen Schritt:

    int main()
    {
        HRESULT hr;
    
        InitializeMapiFunctions();
    
        // Initialize the MAPI subsystem.
        hr = (*pfnMAPIInitialize)(NULL);
        if (hr!= S_OK)
        {
            // Handle the error case.
        }
        // Here is where you make calls to other MAPI interfaces.
    
        // Uninitialize the MAPI subsystem.
        (*pfnMAPIUninitialize)();
    return (0);
    }
    

Die Einführung der Microsoft Outlook 2010 und 64-Bit-MAPI jetzt Erweitern der Microsoft Outlook 2013 erfordert mehr als die herkömmlichen 32-Bit-API für eine vollständige Implementierung. Ein neues Projekt die MAPI-Stub-Bibliothek auf der CodePlex-Website veröffentlicht enthält nützliche Ersatz für Mapi32.lib, die Erstellung von 32-Bit- und 64-Bit-MAPI-Anwendungen unterstützt. MAPIStubLibrary.lib entfällt die Notwendigkeit zum expliziten MAPI verknüpfen und erstellt es, Sie können entfernen Mapi32.lib Linker Sie Ihre Einstellungen durch MAPIStubLibrary.lib ersetzen; Es sollten keine weiteren Änderungen am Code erforderlich sein. Auch überflüssig schreiben LoadLibrary, GetProcAddressund FreeLibrary Code zum Behandeln von neuere Exporte enthalten in dieser Bibliotheksdatei jedoch nicht im Mapi32.lib, die erforderlich wäre, wenn Sie explizite Verknüpfung verwendet.

Einige der neuen Funktionen aus dieser Bibliothek verknüpft, die in Mapi32.lib nicht verfügbar sind die folgenden:

Eine alternative Methode für das Einbinden der MAPI-Bibliothek Stub ist, kopieren Sie die Quelldateien, MapiStubLibrary.cpp und StubUtils.cpp, direkt in das Projekt, und entfernen Sie jegliche Verknüpfung zu Mapi32.lib und Code, der explizit MAPI verknüpft.

MAPI-Stub-Bibliothek Computerdateien und Informationen zum Erstellen und integrieren sie in Ihrem Projekt als auch Fragen zu dieser Bibliothek wie wann und warum verwenden, finden Sie unter der MAPI-Stub-Bibliothek auf der CodePlex-Website.

Anzeigen: