Identifizieren eines Ordners mit einem Konto

In einer Microsoft Outlook-Sitzung, in der mehrere Konten im Profil definiert sind, befindet sich der ordner, der im aktiven Explorer angezeigt wird, nicht unbedingt im Standardspeicher für diese Sitzung. Stattdessen kann es sich in einem der mehreren Speicher befinden, die den mehreren Konten zugeordnet sind. In diesem Thema wird gezeigt, wie Sie das Konto identifizieren, dessen Standardübermittlungsspeicher derselbe Speicher ist, der den Ordner hostet.

Im folgenden Codebeispiel ruft die DisplayAccountForCurrentFolder Funktion die Funktion auf, um das GetAccountForFolder Konto zu identifizieren, dessen Standardübermittlungsspeicher den aktuellen Ordner hostet, und zeigt dann den Namen des Ordners an. GetAccountForFolder entspricht dem Speicher des aktuellen Ordners (abgerufen von der Folder.Store-Eigenschaft ) mit dem Standardübermittlungsspeicher jedes Kontos (abgerufen mit der Account.DeliveryStore-Eigenschaft ), das in der Accounts-Auflistung für die Sitzung definiert ist. GetAccountForFolder gibt das Account-Objekt zurück, wenn eine Übereinstimmung gefunden wird. Andernfalls wird NULL zurückgegeben.

Der folgende verwaltete Code ist in C# geschrieben. Um ein verwaltetes Codebeispiel von .NET Framework auszuführen, das ein Component Object Model (COM) aufrufen muss, müssen Sie eine Interopassembly verwenden, die verwaltete Schnittstellen definiert und den COM-Objekten in der Object Model-Typbibliothek zuordnet. Für Outlook können Sie Visual Studio und die Outlook Primary Interop Assembly (PIA) verwenden. Stellen Sie sicher, dass Sie die Outlook 2013 PIA installiert und eine Referenz zur Microsoft Outlook 15.0-Objektbibliothekkomponente in Visual Studio hinzugefügt haben, bevor Sie verwaltete Codebeispiele für Outlook 2013 ausführen. Sie sollten den folgenden Code in der ThisAddIn Klasse eines Outlook-Add-Ins verwenden (mit Office Developer Tools für Visual Studio). Das Objekt der Anwendung im Code muss ein vertrauenswürdiges Outlook- Anwendungsobjekt sein, das von ThisAddIn.Globals bereitgestellt wird. Weitere Informationen zur Verwendung der Outlook-PIA zur Entwicklung verwalteter Outlook-Lösungen finden Sie auf MSDN unter Willkommen bei der Referenz zur primären Interopassembly von Outlook (PIA).

private void DisplayAccountForCurrentFolder() 
{ 
    Outlook.Folder myFolder = Application.ActiveExplorer().CurrentFolder  
        as Outlook.Folder; 
    string msg = "Account for Current Folder:" + "\n" + 
        GetAccountForFolder(myFolder).DisplayName; 
    MessageBox.Show(msg, 
        "GetAccountForFolder", 
        MessageBoxButtons.OK, 
        MessageBoxIcon.Information); 
} 
 
Outlook.Account GetAccountForFolder(Outlook.Folder folder) 
{ 
    // Obtain the store on which the folder resides. 
    Outlook.Store store = folder.Store; 
 
    // Enumerate the accounts defined for the session. 
    foreach (Outlook.Account account in Application.Session.Accounts) 
    { 
        // Match the DefaultStore.StoreID of the account 
        // with the Store.StoreID for the correct folder. 
        if (account.DeliveryStore.StoreID  == store.StoreID) 
        { 
            // Return the account whose default delivery store 
            // matches the store of the given folder. 
            return account; 
        } 
     } 
     // No account matches, so return null. 
     return null; 
}

Support und Feedback

Haben Sie Fragen oder Feedback zu Office VBA oder zu dieser Dokumentation? Unter Office VBA-Support und Feedback finden Sie Hilfestellung zu den Möglichkeiten, wie Sie Support erhalten und Feedback abgeben können.