Share via


Abrufen des Kontos für einen Ordner

In diesem Beispiel wird das Konto abgerufen, das einem Ordner in der aktuellen Sitzung zugeordnet ist.

Beispiel

Im nachstehenden Codebeispiel ruft die DisplayAccountForCurrentFolder-Funktion die GetAccountForFolder-Funktion auf, um das Konto zu identifizieren, dessen Standardzustellspeicher den aktuellen Ordner beinhaltet, und zeigt dann den Namen des Ordners an. GetAccountForFolder gleicht den Speicher des aktuellen Ordners (abgerufen durch die Store-Eigenschaft) mit dem Standardzustellspeicher aller Konten (abgerufen durch die DeliveryStore-Eigenschaft) ab, die in der Accounts-Sammlung für die Sitzung definiert wurden. GetAccountForFolder gibt das Account-Objekt ab, wenn eine Übereinstimmung gefunden wird; andernfalls wird ein Nullverweis zurückgegeben.

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.

Wenn Sie Visual Studio verwenden, um dieses Codebeispiel zu testen, müssen Sie der Microsoft Outlook 15.0-Objektbibliothekkomponente zuerst einen Verweis hinzufügen und die Outlook-Variable angeben, wenn Sie den Microsoft.Office.Interop.Outlook-Namespace importieren. Die using-Anweisung darf im Codebeispiel nicht direkt vor den Funktionen stehen, sondern muss vor der öffentlichen Class-Deklaration hinzugefügt werden. Die folgende Codezeile zeigt, wie Sie den Import und die Zuweisung in C# vornehmen.

using Outlook = Microsoft.Office.Interop.Outlook;
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 currect 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;
}

Siehe auch