我们为 outlook 2010 编写了代码。
当我们使用 outlook 2003 在计算机上运行时,我们会收到错误消息。
我们正在尝试使用Outlook.namespace GetSelectNamesDialog函数
来解析用户名并在安装outlook 2003时出现以下异常:
异常信息:System.accessviolationexception。
堆栈:
at Microsoft.Office.Interop.Outlook._NameSpace.GetSelectNamesDialog()
我们的代码是否可以用于 2010 和 2003 ?
目前,它仅适用于Outlook 2010。
答案 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及更高版本)。