Outlook 自定义进度条

Outlook custom progress bar

我正在使用 C# 创建一个 outlook 加载项(.NET 4.0 外观 2010),它将用户选择的文件保存到特定的文件系统文件夹,一切正常。 使用

保存文件
Outlook.MailItem objMailItem = (Outlook.MailItem)mailitem;
objMailItem.SaveAs(string.Concat(objDir.FullName, "\",RDate, fName + ".msg"), Outlook.OlSaveAsType.olMSG);

当用户选择多个文件时,outlook 会为每个文件显示一个保存对话框(例如:将文件保存到 ..C:\用户提供的路径)。

我正在寻找创建如下所示的自定义对话框:

Saving 1 of 10
.
.
Saving 9 of 10

有人对如何'work around'此行为或要处理/抑制哪个事件有想法?

您可以显示自己的 Windows 表单,其中包含您需要的信息。例如:

form.Show();

form.ShowDialog();

不要忘记指定父 Outlook window 句柄以防止对话框 window 隐藏。您可以将 Explorer 或 Inspector 对象转换为 IOleWindow 接口以获取句柄。

您也可以考虑向资源管理器或检查器添加自定义表单 windows。对于 Inspector,您可以使用 Outlook 表单区域。 Explorer 没有这样的技术,你必须使用 Windows API 函数来子类化 Explorer window。有关详细信息,请参阅 Adjacent Windows In Outlook

但是 Outlook 对象模型不提供任何信息或将项目保存到 disk/folder 时触发的事件。