Registrieren von Diensten und Dienstanbietern in MapiSvc.inf
Gilt für: Outlook 2013 | Outlook 2016
Zum Installieren eines neuen Anbieters auf einem System muss die Datei "MapiSvc.inf" so aktualisiert werden, dass sie auf den neuen Anbieter verweist. Standardeigenschaften, die während der Konfiguration festgelegt werden, z. B. Folgendes, informieren MAPI darüber, wo die Dynamic Link Library (dynamic-link library, .dll) des Anbieters zu finden ist:
Die PR_SERVICE_DLL_NAME wird im Abschnitt [Message Service] angegeben.
Die PR_PROVIDER_DLL_NAME wird im Abschnitt [Dienstanbieter] angegeben.
Hinweis
Es wird erwartet, dass Sie den Namen der .dll Ihres Anbieters (ohne das Suffix "32") festlegen. MAPI lädt dann Ihren Anbieter, indem sie im Pfad danach sucht.
Platzieren eines Pfads in "MapiSvc.inf"
Die meisten Anwendungen werden unter Programme installiert, sodass eine Aktualisierung der Pfadvariable erforderlich ist, damit MAPI-Anbieter funktionieren können. Mit einigen Einschränkungen können Microsoft Outlook 2010 und Outlook 2013 vollständige Pfade zu MAPI-Anbietern aufnehmen.
Wenn Sie Ihren Anbieter in MapiSvc.inf registrieren, können Sie den vollständigen Pfad zum Anbieter in den MAPI-Eigenschaften PR_SERVICE_DLL_NAME und PR_PROVIDER_DLL_NAME.
In beiden Eigenschaften muss der vollständige Pfad ohne das Suffix "32" enthalten sein, da MAPI dieses Anfügen an den Dateinamen fortsetzt, bevor nach Ihrer Datei gesucht wird. Wenn Sie also den Pfad "c:\mypath\myprovider.dll" registrieren, versucht MAPI, "c:\mypath\myprovider32.dll" zu laden.
Da die MAPI von Outlook ursprünglich nicht für vollständige Pfade entworfen wurde, wird diese Einfügung des Suffixes "32" erreicht, indem nach dem ersten Punkt in der Zeichenfolge gesucht wird. Dies bedeutet, dass Pfade, die andere Punkte enthalten, nicht funktionieren können, sodass Sie keine Pfade wie "c:\my.path\myprovider.dll" oder "c:\mypath\my.provider.dll" verwenden können.
Manchmal generieren Sie in einem Speicheranbieter Eingabebezeichner mithilfe der WrapStoreEntryID-Funktion , die den Namen Ihres Anbieters als Parameter akzeptiert.
Wichtig
Wenn Sie vollständige Pfade in MapiSvc.inf verwenden, müssen Sie denselben Pfad in allen Aufrufen von WrapStoreEntryID verwenden.
Darüber hinaus kann der von Ihnen verwendete Pfad mithilfe der von der GetACP-Funktion bereitgestellten Codepage in und aus Unicode konvertiert werden.
Achtung
Wenn Sie einen Pfad auswählen, der Zeichen enthält, die einen solchen Roundtrip durch die Funktionen MultiByteToWideChar und WideCharToMultiByte nicht überstehen können, tritt ein Fehler auf.
Für eine Demonstration dieser Funktionalität wurde das Wrapped PST-Beispiel auf GitHub überarbeitet. Die entsprechende Funktionalität befindet sich in MergeWithMapiSvc und GenerateProviderPath.