C# 如何创建自定义Outlook项目?

C# 如何创建自定义Outlook项目?,c#,outlook,vsto,outlook-addin,C#,Outlook,Vsto,Outlook Addin,我知道Outlook设置了邮件、任务、日历、笔记等项目。如何创建Outlook将识别为其他项目的自定义项目?我知道,当您添加业务联系人经理时,它会创建“Opportunities”之类的项目 您可以重写一个项,或者继承一个项并更改/添加属性和方法吗 示例: olAppointmentItem 1 Represents an AppointmentItem olContactItem 2 Represents a C

我知道Outlook设置了邮件、任务、日历、笔记等项目。如何创建Outlook将识别为其他项目的自定义项目?我知道,当您添加业务联系人经理时,它会创建“Opportunities”之类的项目

您可以重写一个项,或者继承一个项并更改/添加属性和方法吗

示例:

olAppointmentItem           1         Represents an AppointmentItem 
olContactItem               2         Represents a ContactItem 
olDistributionListItem      7         Represents an DistListItem 
olJournalItem               4         Represents a JournalItem 
olMailItem                  0         Represents a MailItem 
olNoteItem                  5         Represents a NoteItem 
olPostItem                  6         Represents a PostItem 
olTaskItem                  3         Represents a TaskItem 

Outlook能够创建自定义表单。如果使用表单设计器bultin创建outlook,则有一个内置的outlook所有版本。您可以使用工具| Forms | designa Form命令启动设计会话。或者,在Outlook 2003或更早版本中打开任何Outlook项目,然后选择工具|表单|设计此表单

当您设计表单时,您将根据现有表单(如约会、任务等)启动。。最接近空白表单的是post表单

表单后面可以有VBScript代码,以便对用户操作做出反应—验证数据、将数据与数据库同步、创建新的Outlook项目等。要添加代码,在表单设计模式下,单击工具栏或功能区上的“查看代码”命令

然后,您可以将表单发布到组织表单库中,以便每个人都可以访问它们。它们也可以直接发布到文件夹中。个人表单发布到文件夹或个人表单库

Outlook帮助中有很多关于这类事情的帮助文档,google也会返回大量的站点,向您展示如何创建新的“类型”;但是,您当然可以通过添加自己的属性来重用现有类型

不能创建新的“类型”;但是你 当然可以重新利用现有的资源 通过添加自己的属性来键入

这一评论是不正确的。您当然可以使用自定义表单,您只需首先将它们发布到表单库,并使用户可以访问它们。通常,它们基于其中一种默认项目类型的设计,也可以作为默认项目类型与文件夹关联

编辑:(根据评论请求更新帖子)

A.创建并发布自定义表单-

B.以编程方式创建自定义表单的实例

Outlook.Application olApp = new Outlook.Application();
    //mapifolder for earlier versions (such as ol 2003)
    Outlook.Folder contacts = olApp.Session.GetDefaultFolder(Outlook.olDefaultFolders.olFolderContacts);
    //must start with IPM.   & must be derived from a base item type, in this case contactItem.
    Outlook.ContactItem itm = (Outlook.ContactItem)contacts.Items.Add(@"IPM.Contact.CustomMessageClass");
    itm.Display(false);

这个问题似乎出现了很多。。。不是吗?我想这取决于你所说的类型。您可以创建新表单,但必须基于现有内置Outlook类型之一。