使用帐户标识文件夹
在配置文件中定义了多个帐户的 Microsoft Outlook 会话中,活动的资源管理器中显示的文件夹不一定位于该会话的默认存储区中;而是可能位于与多个帐户关联的多个存储区之一中。 本主题演示如何标识其默认传送存储区与承载文件夹的存储区为同一存储区的帐户。
在以下代码示例中 DisplayAccountForCurrentFolder
,函数调用 GetAccountForFolder
函数以标识其默认传递存储托管当前文件夹的帐户,然后显示文件夹的名称。 GetAccountForFolder
将从 Folder.Store 属性) 获取的当前文件夹 (存储区与使用会话 (的 Accounts 集合中定义的 Account.DeliveryStore 属性) 获取的每个 帐户 的默认传递存储相匹配。 GetAccountForFolder
在找到匹配项时返回 Account 对象;否则,它将返回 null。
下面的托管代码是使用 C# 编写的。 若要运行需要调入组件对象模型 (COM) 的 .NET Framework 托管代码示例,您必须使用可定义托管接口并将其映射到对象模型类型库中的 COM 对象的互操作程序集。 对于 Outlook,您可以使用 Visual Studio 和 Outlook 主互操作程序集 (PIA)。 在您运行适用于 Outlook 2013 的托管代码示例之前,请确保您已安装了 Outlook 2013 PIA 并且已添加了对 Visual Studio 中的 Microsoft Outlook 15.0 对象库组件的引用。 应使用 Office Developer Tools for Visual Studio) 在 Outlook 外接程序 (类中使用以下代码 ThisAddIn
。 代码中的 应用程序对象必须是由 提供的受信任 Outlook ThisAddIn.Globals
对象。 有关使用 Outlook PIA 开发托管 Outlook 解决方案的详细信息,请参阅欢迎使用 MSDN 上的 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 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;
}
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。