Compartilhar via


Identificar uma pasta com uma conta

Em uma sessão do Microsoft Outlook com várias contas definidas no perfil, a pasta exibida no Explorer ativo não reside necessariamente no repositório padrão dessa sessão; em vez disso, ela pode residir em um dos vários repositórios associados às várias contas. Este tópico mostra como identificar a conta cujo repositório de entrega padrão é o mesmo repositório que hospeda a pasta.

No exemplo de código a seguir, a DisplayAccountForCurrentFolder função chama a GetAccountForFolder função para identificar a conta cujo repositório de entrega padrão hospeda a pasta atual e exibe o nome da pasta. GetAccountForFolder corresponde ao armazenamento da pasta atual (obtido da propriedade Folder.Store ) com o repositório de entrega padrão de cada conta (obtido com a propriedade Account.DeliveryStore ) definida na coleção Contas para a sessão. GetAccountForFolder retorna o objeto Account quando uma correspondência é encontrada; caso contrário, ele retorna nulo.

The following managed code is written in C#. To run a .NET Framework managed code sample that needs to call into a Component Object Model (COM), you must use an interop assembly that defines and maps managed interfaces to the COM objects in the object model type library. For Outlook, you can use Visual Studio and the Outlook Primary Interop Assembly (PIA). Before you run managed code samples for Outlook 2013, ensure that you have installed the Outlook 2013 PIA and have added a reference to the Microsoft Outlook 15.0 Object Library component in Visual Studio. Você deve usar o código a ThisAddIn seguir na classe de um suplemento do Outlook (usando ferramentas de desenvolvedor do Office para Visual Studio). The Application object in the code must be a trusted Outlook Application object provided by ThisAddIn.Globals. For more information about using the Outlook PIA to develop managed Outlook solutions, see the Outlook 2013 Primary Interop Assembly Reference on MSDN.

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; 
}

Suporte e comentários

Tem dúvidas ou quer enviar comentários sobre o VBA para Office ou sobre esta documentação? Confira Suporte e comentários sobre o VBA para Office a fim de obter orientação sobre as maneiras pelas quais você pode receber suporte e fornecer comentários.