VSTO Outlook 项目和文件夹的编程示例

Microsoft Outlook 对象模型通常用于访问文件夹中的各种类型的项目。本文包含可用于通过使用 Microsoft Visual C# .NET 来引用 Outlook 项目和 Outlook 文件夹的方法、属性和对象的示例。

本文包含下列主题及其相关示例:
  • 引用现有的文件夹
    • GetDefaultFolder 方法
    • Folders 对象
    • Parent 属性
    • GetSharedDefaultFolder 方法
    • GetFolderFromID 方法
  • 创建新文件夹和引用新文件夹
    • Folders.Add 方法
  • 创建新项目和引用新项目
    • CreateItem 方法
    • Items.Add 方法
    • CreateItemFromTemplate 方法
  • 引用现有的项目
    • Using Items(I) 方法
    • Using Items("Subject") 方法
    • Find 方法
    • Restrict 方法
    • GetItemFromID 方法

 

 

引用现有的文件夹

GetDefaultFolder 方法

默认文件夹是那些与接收传入邮件的“收件箱”处于同一级别的文件夹。 如果配置文件中有多个“收件箱”,则可以按 Ctrl+Shift+I 来选择默认“收件箱”。 默认文件夹是那些定期使用的文件夹,如“日历”文件夹、“联系人”文件夹和“任务”文件夹。 您可以使用 GetDefaultFolder 方法方便地引用这些文件夹。 GetDefaultFolders 方法采用一个用于定义您要引用的文件夹类型的参数。 Outlook 对象具有一个您可以选择的枚举。 此枚举是在 Outlook.OlDefaultFolders 枚举类型中定义的。 下面的示例代码将 oFolder 对象变量指定给默认的“收件箱”文件夹。

 

Outlook._Application olApp = new Outlook.ApplicationClass(); Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");

Outlook.MAPIFolder oFolder = olNS.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox); Console.Write(oFolder.Name);

 

 

Folders 对象

可以使用 Folders 对象来引用 Outlook 文件夹列表中的任何文件夹。Folders 对象通常用于引用 Microsoft Exchange 文件夹或不是默认 Outlook 文件夹的其他任何文件夹。

下面的示例代码说明如何引用名为“My Public Folder”的公用文件夹。请注意,您通常是先从最顶端的文件夹开始,然后向下查找您必须引用的文件夹。另请注意,文件夹名称是区分大小写的。您必须使文件夹的大小写和名称与其在 Outlook 文件夹列表中的显示完全匹配。

 

// TODO: Add code here to start the application.
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");Outlook._Folders oFolders;
oFolders = olNS.Folders;
Outlook.MAPIFolder oPublicFolder = oFolders.Item("Public Folders");
oFolders = oPublicFolder.Folders;
Outlook.MAPIFolder oAllPFolder = oFolders.Item("All Public Folders");
oFolders = oAllPFolder.Folders;
Outlook.MAPIFolder oMyFolder  = oFolders.Item("My Public Folder");
Console.Write(oMyFolder.Name);

 

 

Folders 对象

可以使用 Folders 对象来引用 Outlook 文件夹列表中的任何文件夹。Folders 对象通常用于引用 Microsoft Exchange 文件夹或不是默认 Outlook 文件夹的其他任何文件夹。

下面的示例代码说明如何引用名为“My Public Folder”的公用文件夹。请注意,您通常是先从最顶端的文件夹开始,然后向下查找您必须引用的文件夹。另请注意,文件夹名称是区分大小写的。您必须使文件夹的大小写和名称与其在 Outlook 文件夹列表中的显示完全匹配。

 

 // TODO: Add code here to start the application.
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNS = olApp.GetNamespace("MAPI");Outlook._Folders oFolders;
oFolders = olNS.Folders;
Outlook.MAPIFolder oPublicFolder = oFolders.Item("Public Folders");
oFolders = oPublicFolder.Folders;
Outlook.MAPIFolder oAllPFolder = oFolders.Item("All Public Folders");
oFolders = oAllPFolder.Folders;
Outlook.MAPIFolder oMyFolder  = oFolders.Item("My Public Folder");

 

 

GetSharedDefaultFolder 方法

如果另一个人已授予您使用其某个默认文件夹的权限,则您可以使用此方法。您可以像使用 GetDefaultFolder 方法一样来使用 GetSharedDefaultFolder 方法,但必须另外指定一个参数。该附加参数用于指定属于其他人的文件夹的名称。该文件夹是您要引用的文件夹。下面的示例代码对其他人的名称进行解析,以验证该人的名称是否有效,并验证其名称是否可以用于 GetSharedDefaultFolder 方法。

 

GetSharedDefaultFolder:

// TODO: Add code here to start the application.
Outlook._Application olApp = new Outlook.ApplicationClass();
Outlook._NameSpace olNs = olApp.GetNamespace("MAPI");
Outlook.Recipient oRecip = olNs.CreateRecipient("Brian Baker");
oRecip.Resolve();
if (oRecip.Resolved)
{
Outlook.MAPIFolder oFolder = olNs.GetSharedDefaultFolder(oRecip,Outlook.OlDefaultFolders.olFolderCalendar);
Console.Write(oFolder.Name);
}

 

 

详细描述参考:http://support.microsoft.com/kb/310244/zh-cn

 

posted @ 2009-03-10 10:10  Anlycp  阅读(1656)  评论(2编辑  收藏  举报