Com 我的应用程序无法使用MAPI子系统正确创建MAPI/消息传递配置文件
我有一个应用程序,可以创建MAPI配置文件来发送邮件/消息。配置文件在Outlook2007环境中正确创建,但在Outlook2007 SP2环境中未正确创建。源代码和“MAPI/outlook配置文件所指向的exchange环境”都相同。配置文件是使用MAPI子系统创建的 有关应用程序的说明:该应用程序是基于windows服务的应用程序。该服务执行COM应用程序。COM应用程序生成一个新线程来创建一个新的概要文件,并发送一条示例消息 实际问题:在概要文件创建过程中,对ConfigureMsgService函数(属于IMsgServiceAdmin)的调用无法正常工作,即使它返回S_OK。ConfigureMsgService函数的第5个参数“lpProps”的值如下所示Com 我的应用程序无法使用MAPI子系统正确创建MAPI/消息传递配置文件,com,outlook,exchange-server,outlook-2007,mapi,Com,Outlook,Exchange Server,Outlook 2007,Mapi,我有一个应用程序,可以创建MAPI配置文件来发送邮件/消息。配置文件在Outlook2007环境中正确创建,但在Outlook2007 SP2环境中未正确创建。源代码和“MAPI/outlook配置文件所指向的exchange环境”都相同。配置文件是使用MAPI子系统创建的 有关应用程序的说明:该应用程序是基于windows服务的应用程序。该服务执行COM应用程序。COM应用程序生成一个新线程来创建一个新的概要文件,并发送一条示例消息 实际问题:在概要文件创建过程中,对ConfigureMsgS
// First, the mailbox name.
ZeroMemory(&rgval[0], sizeof(SPropValue) );
rgval[0].ulPropTag = PR_PROFILE_UNRESOLVED_NAME;
rgval[0].Value.lpszA = szMailbox;
// Next, the server name.
ZeroMemory(&rgval[1], sizeof(SPropValue) );
rgval[1].ulPropTag = PR_PROFILE_UNRESOLVED_SERVER;
rgval[1].Value.lpszA = szServer;
// For NT Services, need to do this to keep MAPI from
// displaying dialog boxes.
ZeroMemory(&rgval[2], sizeof(SPropValue) );
rgval[2].ulPropTag = PR_CONVERSION_PROHIBITED; //As the com application is executed by the NT service, this parameter is specified.
rgval[2].Value.b = TRUE;
另外请注意,在ConfigureMsgService函数调用之前,所有其他MAPI调用(如MAPIInitialize、MAPIAdminProfiles、CreateProfile、AdminServices、CreateMsgService、GetMsgServiceTable等)都会成功
我的问题是,相同的代码在Outlook2007环境中正常工作,但在Outlook2007SP2环境中失败
请注意,
1.当从独立应用程序执行相同的代码时,它工作得很好。
2.如果服务作为本地系统帐户或网络服务帐户执行,则代码无法正常工作