启动服务提供程序
适用于:Outlook 2013 | Outlook 2016
在客户端启动与 MAPI 的会话之后的某个时刻,服务提供程序将启动。 客户端对其服务发出请求时,将启动传输提供程序。 通讯簿和消息存储提供程序在客户端登录过程中启动。
客户端调用 IMAPISession::OpenAddressBook 以加载配置文件中包含的每个通讯簿提供程序,并调用 IMAPISession::OpenMsgStore 以加载特定的消息存储提供程序。 作为消息服务的一部分的通讯簿提供程序在服务中的其他任何提供程序之前启动。
MAPI 通过执行以下操作来启动活动配置文件中的每个服务提供程序:
在配置文件中查找其 DLL 的名称。 你需要在 Mapisvc.inf 配置文件中注册提供程序 DLL 的名称,以确保它出现在配置文件中。 将服务提供商添加到配置文件时,无论是单独还是作为消息服务的一部分,Mapisvc.inf 中应用于提供程序的所有 [服务提供商] 部分都会复制到配置文件中。 有关 Mapisvc.inf 结构的详细信息,请参阅 MapiSvc.inf 的文件格式。
调用 Windows API 函数 LoadLibrary 以加载 DLL。 由于 MAPI 在每次使用服务提供商 DLL (时都会调用 LoadLibrary ,无论它是已) 加载还是仅首次加载,因此服务提供商不得对要加载的次数做出假设。 对于每次调用 LoadLibrary,当不再需要服务提供商 DLL 时,MAPI 都会调用 Windows API 函数 FreeLibrary 。
调用提供程序的入口点函数。 MAPI 调用提供程序的入口点函数来启动登录过程。 入口点函数可确保使用与 MAPI 所用版本兼容的服务提供程序接口 (SPI) 版本。 这些函数还返回指向新创建的提供程序对象的指针。 有关为提供程序创建入口点函数的详细信息,请参阅 实现服务提供程序入口点函数。