扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
Outlook"Item"类类型
一旦有了 Application 类型,就能创建新的 Outlook"项".通过 Microsoft.Office.Interop.Outlook.OlItemType 枚举可以列出可能的项:
public enum OlItemType |
假设您希望通过编程来创建新的 Outlook Task 项。要这样做,请指定 OlItemType.olTaskItem 作为 Application.CreateItem() 的参数:
public static void Main()
|
注意,CreateItem() 的返回值是一般的 OlItemType;因此需要显式地将结果转换为正确的类型(在这里是 TaskItem)。这时,只需要使用类型的公共接口来配置项。一旦执行,将能够在 Outlook 任务检查器中查找任务(图 4)。
图 4. 通过编程生成的任务
尽管 OlItemType 枚举的名称很简单,但表 2 详细列出了 OlItemType 枚举的成员与 Application.CreateItem() 产生的返回类型之间的关系。
表 2.OlItemType enum/Outlook 类类型关系
OlItemType 枚举值 | 所产生的类型 | 基本含义 |
olAppointmentItem | AppointmentItem | 表示单个约会。 |
olContactItem | ContactItem | 表示单个联系人。 |
olDistributionListItem | DistributionListItem | 表示一个通讯组列表。 |
olJournalItem | JournalItem | 表示单个日记项。 |
olMailItem | MailItem | 表示单个电子邮件项。 |
olNoteItem | NoteItem | 表示单个注释。 |
olPostItem | PostItem | 表示其他人可能浏览的公用文件夹中的公告。 |
olTaskItem | TaskItem | 表示单个任务。 |
获得现有 Outlook 项
除了创建新项以外,Outlook 2003 模型还允许获得(并且可能修改)现有项。不管对枚举哪个 Outlook 项感兴趣,基本过程都是:
* 从 Application.GetNamespace() 获得 NameSpace 类型。
* 从 NameSpace.GetDefaultFolder() 获得 MAPIFolder 类型。
* 使用 MAPIFolder.Items 索引器枚举子项。
指定字符串"MAPI"作为 GetNamespace() 的参数时,将收到一个 NameSpace 类型,该类型表示具体的 Outlook 数据存储的抽象级别(目前,"MAPI"是唯一有效的命名空间)。MAPIFolder 类型可以表示给定用户的邮件存储中的任何文件夹(已删除项、收件箱、日记项等)。文件夹选项的完整范围由 OlDefaultFolders 枚举来表示:
public enum OlDefaultFolders |
要请求具体的文件夹,请将 OlDefaultFolders 枚举中的值指定为 NameSpace.GetDefaultFolder() 的参数。请考虑以下代码,这些代码枚举了当前用户的任务集合:
static void Main(string[] args) |
Inspectors 和 Explorers
Outlook 对象模型不仅使您能够访问各种项,还定义了用来对用户界面进行操作的类型。Explorer 类型表示用于显示文件夹内容的窗口。另一方面,Inspectors 表示打开后可查看的单个项。Application 类维护一个由所有 Explorers 和 Inspectors 组成的集合,通过使用适当命名的 Explorers / Inspectors 属性可以获得这些类型:
Application app = new Application(); |
Application 类的 GetActiveExplorer() 和 GetActiveInspector() 方法可以用来获得当前活动的 UI 元素:
Application app = new Application(); |
当您生成自定义的 Outlook 外接程序时,Explorers 和 Inspectors 是很有用的,因为它们让您能够将 UI 小部件附加到现有的 CommandBars 集合中。本文稍后将进一步介绍这方面的情况。
生成 Outlook 识别的应用程序
要重点操作 Outlook 的对象模型(而不是生成奇特的用户界面),第一个示例将利用简单的命令行用户界面。如果希望跟着做,请创建一个新的 C# 控制台应用程序,并命名为 OPine.Unix 用户可能知道,"Pine"是一个很流行的命令行电子邮件实用工具的名称。OPine 将模仿 Pine 的功能子集。具体来说,OPine 将响应以下命令:
* dib:显示收件箱项
* snm:发送新邮件项
* cn:创建新注释
* dn:显示现有注释
* q:退出 OPine
通过响应 NewMailEx 事件,OPine 还能在新邮件到达时通知用户。
注OPine 将利用 ApplicationClass 类型(而不是 Application)来解决一个在随后引用 System.Windows.Forms.dll 程序集时引入的名称冲突。也可以使用如下所示的 C# 别名解决名称冲突:
using OutLookApp = Microsoft.Office.Interop.Outlook.Application; |
但在这种情况下,使用 –Class 类型将不会损害 OPine 示例。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者