Dynamische Ermittlung des OrdnerPfades für öffentliche Kontakte in Microsoft Outlook

  • VB.NET

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Dynamische Ermittlung des OrdnerPfades für öffentliche Kontakte in Microsoft Outlook

    Mit

    VB.NET-Quellcode

    1. NameSpace.GetDefaultFolder(OlDefaultFolders.olFolderContacts)
    kann man die eigenen Kontakte auslesen.
    Und mit

    VB.NET-Quellcode

    1. NameSpace.Folders.Item(objNameSpace.Folders(1).Name).Folders.Item("Alle Öffentlichen Ordner").Folders.Item("Kontakte")
    kommt man an die öffentlichen Kontakte,
    wenn der OdnerPfad dahin "\\Öffentliche Ordner - abc@def.de\Alle Öffentlichen Ordner\Kontakte" ist.

    Nun soll der Zugriff auf öffentliche Kontakte modifiziert werden, da es mal sein kann, dass der OdnerPfad nicht gleich dem obrigen ist.
    Also habe ich im Msdn geschaut und das gefunden : msdn.microsoft.com/en-us/libra…space.opensharedfolder#Y0

    Dies ist der Versuch der Umsetzung:

    VB.NET-Quellcode

    1. AktUser = objNameSpace.CurrentUser.Name
    2. Dim recep As Outlook.Recipient
    3. recep = objNameSpace.CreateRecipient(AktUser)
    4. Dim iwas As String = objNameSpace.GetSharedDefaultFolder(recep, OlDefaultFolders.olPublicFoldersAllPublicFolders).FolderPath
    5. objMapiFolder = objNameSpace.OpenSharedFolder(iwas )

    Erst wird der Benutzername ermittelt um einen Recipient zu erstellen.
    Mit diesem soll es dann via GetSharedDefaultFoldes() möglich sein den Pfad zum öffentlichen Ordner zu holen.
    Anschließend wird dieser Pfad an OpenShardFolder() übergeben und man hat den MapiFolder...

    Das Problem steckt in der Ermittlung des Pfades:
    Bei GetSharedDefaultFolder() muss man einen Recipient und einen Folder übergeben.
    Dort ist "olPublicFoldersAllPublicFolders" das einzige was mir als möglicher öffentlicher Ordner in Frage kommt.
    Leider bekomme ich dann immer diese Meldung, wenn ich den Code so durchführen lasse:
    Der Vorgang konnte nicht abgeschlossen werden. Mindestens ein Parameterwert ist ungültig.


    Wenn ich anstatt mal "OlDefaultFolders.olFolderContacts" eingebe erhalte ich die privaten Kontakte

    Jemand eine Idee, wie ich den Pfad zu möglichen öffentlichen Kontakten ermitteln kann.
    Oder geht dies nur als feste Übergabe?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Don_Batisto“ ()

    Kannst Du vllt. eine kleine Test-App erstellen, die ausschließlich Dein Problem reproduziert und diese als ZIP posten?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Hab jetzt gerade kein Studio 2010 AndAlso Outlook bei der Hand, werd heute abend mal drüber schauen.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nun mit Studio 2010 und Outlook, leider stirbt das Programm bei mir mit Fehler &h80080005 (ggf. zu viele COM-Objekte offen) in der Zeile

    VB.NET-Quellcode

    1. objOutlook = New Outlook.Application
    Was sind bei Dir für Bedingungen an Outlook geknüpft?
    Ich hab MS Office 2010, V 14, 64 Bit.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!