为Outlook 2010编写的代码可以与outlook 2003一起使用吗?

时间:2014-02-23 08:04:40

标签: c# outlook outlook-2010 outlook-2003

我们为 outlook 2010 编写了代码。

当我们使用 outlook 2003 在计算机上运行时,我们会收到错误消息。

我们正在尝试使用Outlook.namespace GetSelectNamesDialog函数

来解析用户名

并在安装outlook 2003时出现以下异常:

  

异常信息:System.accessviolationexception。

     

堆栈:

     

at Microsoft.Office.Interop.Outlook._NameSpace.GetSelectNamesDialog()

我们的代码是否可以用于 2010 2003

目前,它仅适用于Outlook 2010。

2 个答案:

答案 0 :(得分:1)

你可以实现2个班级。 一个用于2010年,另一个用于2003年。 使用3功能创建OutlookExchange接口:发送,解析和关闭。 这两个类将从OutlookExchange继承。 您需要在下一个链接How to detect installed version of MS-Office?中查看计算机中安装的Outlook版本。 ,并根据类似的版本使用该类:

public static OutlookCreator()

{


Microsoft.Office.Interop.Word.Application appVer = new Microsoft.Office.Interop.Word.Application();

string[] _appVer=appVer.Split('.');

int version=Int32.Parse(_appVer[0]);

OutlookExchange exchange=null;

//outlook 2003

if(version==11)

   exchange=new Outlook2003();

//outlook 2007 and newer

if(version>11)

   exchange=new Outlook2010();

return exchange

}

答案 1 :(得分:0)

在Outlook 2007中添加了GetSelectNamesDialog方法和SelectNamesDialog对象。

如果使用Redemption是一个选项,您可以使用它RDOSelectNames对象,该对象适用于所有版本的Outlook(98及更高版本)。