Agregar o eliminar proveedores en un servicio de mensajes
Hace referencia a: Outlook 2013 | Outlook 2016
Para agregar o eliminar proveedores de servicios en un servicio de mensajes, use la interfaz IProviderAdmin : IUnknown . Puede recuperar un puntero IProviderAdmin llamando a IMsgServiceAdmin::AdminProviders. En la tabla del proveedor, a la que se puede acceder a través de IProviderAdmin::GetProviderTable, se muestra información sobre los proveedores de servicios instalados actualmente en el servicio de mensajes. Los clientes y proveedores de servicios pueden usar la tabla de proveedores para acceder al nombre del archivo DLL del proveedor, por ejemplo, o mapiuid, nombre para mostrar y tipo del proveedor, así como información sobre el servicio de mensajes. Para obtener más información, vea Tablas de proveedores.
Para agregar o eliminar un proveedor de servicios en un servicio de mensajes
Llame al método AdminServices para acceder a un objeto de administración del servicio de mensajes.
Llame a IMsgServiceAdmin::GetMsgServiceTable para acceder a la tabla de servicio de mensajes.
Cree una restricción de propiedad mediante una estructura SPropertyRestriction que coincida con PR_DISPLAY_NAME (PidTagDisplayName) o PR_SERVICE_NAME (PidTagServiceName) con el nombre del servicio de mensajes que se va a modificar.
Llame al método IMAPITable::FindRow de la tabla de servicio de mensajes para buscar la fila en la tabla que representa el servicio de mensajes de destino.
Llame a IMsgServiceAdmin::AdminProviders para recuperar un puntero IProviderAdmin . Pase la columna PR_SERVICE_UID (PidTagServiceUid) de la fila de la tabla del servicio de mensajes como parámetro lpUID .
Llame a IProviderAdmin::GetProviderTable para acceder a la tabla del proveedor.
Cree una restricción de propiedad mediante una estructura SPropertyRestriction que coincida con PR_DISPLAY_NAME (PidTagDisplayName) o PR_PROVIDER_DISPLAY (PidTagProviderDisplay) con el nombre del proveedor de servicios que se va a agregar o eliminar.
Llame al método IMAPITable::FindRow de la tabla del proveedor para buscar la fila en la tabla que representa el proveedor de servicios de destino.
Llame a IProviderAdmin::CreateProvider para agregar el proveedor o IProviderAdmin::D eleteProvider para quitarlo del servicio de mensajes. Para CreateProvider, pase la propiedad PR_DISPLAY_NAME del proveedor como parámetro lpszProvider . Para cualquier método, pase la propiedad PR_SERVICE_UID del proveedor como parámetro lpUID . Una vez agregado o eliminado el proveedor de servicios, el cambio no será evidente hasta que se cree una nueva sesión.
Otra técnica para agregar un proveedor de servicios, específicamente un proveedor de almacén de mensajes, a un perfil implica la construcción de un identificador de entrada para el proveedor. Dado que la construcción de un identificador de entrada requiere conocimientos de su formato, esta técnica solo se puede usar si el proveedor de servicios ha hecho público su formato de identificador de entrada.
Con el identificador de entrada recién construido, un cliente puede llamar a IMAPISession::OpenMsgStore. MAPI crea automáticamente una sección de perfil en el perfil del proveedor de servicios, pero no lo agrega a un servicio de mensajes.
Algunos servicios de mensajes no permiten este tipo de modificación dinámica; si se admite o no depende del servicio de mensajes. Otra característica que puede o no ser compatible es la capacidad de acceder directamente a las secciones de perfil privado de un servicio de mensajes. Si el servicio de mensajes que usa permite este acceso, publicará el GUID que representa la sección privada en MAPISVC.INF. Puede pasar este GUID en una llamada a IProviderAdmin::OpenProfileSection para acceder a la sección de perfil.