目前我的目标是创建 Outlook 加载项,它将创建特定的存档文件夹。与常规的不同之处在于,我应该让我在搬入或搬出期间完全控制项目的内容。
简而言之,我应该能够在项目真正移动到我的文件夹或从我的文件夹中删除之前扫描项目的二进制内容。我打算将其中一些项目复制到网络位置。
请针对我的情况建议我正确的文件或样本
目前我的目标是创建 Outlook 加载项,它将创建特定的存档文件夹。与常规的不同之处在于,我应该让我在搬入或搬出期间完全控制项目的内容。
简而言之,我应该能够在项目真正移动到我的文件夹或从我的文件夹中删除之前扫描项目的二进制内容。我打算将其中一些项目复制到网络位置。
请针对我的情况建议我正确的文件或样本
假设您使用的是 Visual Studio 2010,您很可能首先创建一个 Visual Studio Tools for Office (VSTO) 项目来创建您的加载项。在此处查看有关 VSTO 和 Visual Studio 的详细信息。
启动并运行它后,您将拥有一个名为 ThisAddIn.cs 的源文件,其中包含加载项的“主入口点”。从那里,您可以连接到 Outlook 在某些事件发生时将引发的事件。您很可能会对以下活动感兴趣:
您的代码将如下所示:
private void ThisAddIn_Startup(object sender, EventArgs e)
{
var explorer = this.Application.ActiveExplorer();
explorer.BeforeFolderSwitch += new ExplorerEvents_10_BeforeFolderSwitchEventHandler(explorer_BeforeFolderSwitch);
explorer.FolderSwitch += new ExplorerEvents_10_FolderSwitchEventHandler(explorer_FolderSwitch);
}
/// <summary>
/// Handler for Outlook's "BeforeFolderSwitch" event. This event fires before the explorer goes to
/// a new folder, either as a result of user action or through program code.
/// </summary>
/// <param name="NewlySelectedFolderAsObject">
/// The new folder to which navigation is taking place. If, for example, the user moves from "Inbox"
/// to "MyMailFolder", the new current folder is a reference to the "MyMailFolder" folder.
/// </param>
/// <param name="Cancel">
/// A Boolean describing whether or not the operation should be canceled.
/// </param>
void explorer_BeforeFolderSwitch(object NewlySelectedFolderAsObject, ref bool Cancel)
{
if (NewlySelectedFolderAsObject == null)
return;
var newlySelectedFolderAsMapiFolder = NewlySelectedFolderAsObject as MAPIFolder;
}
void explorer_FolderSwitch()
{
}
您的代码应放置在这些事件处理程序中以执行您的工作。