Implementación del inicio de sesión del proveedor de servicios
Hace referencia a: Outlook 2013 | Outlook 2016
MAPI llama a un método en el objeto de proveedor para comenzar el proceso de inicio de sesión mediante el puntero que devuelve de la función de punto de entrada. El método varía de la siguiente manera, en función del tipo de proveedor de servicios:
IABProvider::Logon para proveedores de libreta de direcciones
IMSProvider::Logon para proveedores de almacén de mensajes
IXPProvider::TransportLogon para proveedores de transporte
Realice las siguientes tareas en cualquier método de inicio de sesión que implemente:
Incremente el recuento de referencias en el objeto de compatibilidad que se pasa como parámetro de entrada llamando a su método IUnknown::AddRef .
Llame al método IMAPISupport::OpenProfileSection del objeto de soporte técnico para acceder a la sección de perfil.
Llame al método IMAPIProp::SetProps de la sección del perfil para establecer las siguientes propiedades:
PR_DISPLAY_NAME (PidTagDisplayName)
PR_ENTRYID (PidTagEntryId)
PR_PROVIDER_DISPLAY (PidTagProviderDisplay)
PR_RECORD_KEY (PidTagRecordKey)
Nota:
No intente establecer las propiedades de PR_RESOURCE_FLAGS o PR_PROVIDER_DLL_NAME de la sección de perfil. En el momento del inicio de sesión, estas propiedades son de solo lectura.
Compruebe que las propiedades que necesita para la configuración se almacenan en el perfil o están disponibles para el usuario. Para obtener más información sobre cómo comprobar la configuración, consulte Comprobación de la configuración del proveedor de servicios.
Llame al método IMAPISupport::SetProviderUID del objeto de soporte técnico para registrar un identificador único, o MAPIUID, si el proveedor es un proveedor de almacén de mensajes o libreta de direcciones. Los proveedores de transporte registran estructuras MAPIUID cuando MAPI llama a su método IXPLogon::AddressTypes . Para obtener más información sobre cómo registrar una MAPIUID, vea Registrar identificadores únicos del proveedor de servicios.
Cree una instancia de un objeto de inicio de sesión y devuelva uno de los valores siguientes:
S_OK para indicar un inicio de sesión correcto.
MAPI_E_UNCONFIGURED para indicar que una o varias de las propiedades de configuración no estaban disponibles.
MAPI_E_USER_CANCEL para indicar que el usuario canceló el cuadro de diálogo de configuración, lo que hace que las propiedades de configuración no estén disponibles.
MAPI_E_FAILONEPROVIDER para indicar que el proveedor no se pudo configurar, pero que MAPI debe permitir su uso independientemente. Los métodos de inicio de sesión deben devolver este valor para notificar un error nofatal, como cuando el proveedor requiere una contraseña y no puede solicitarla al usuario porque la interfaz de usuario está deshabilitada.
En la lista anterior de tareas se describe una implementación mínima para un método de inicio de sesión del proveedor de servicios. Puede incluir funcionalidad adicional, si es necesario. Por ejemplo, algunos proveedores llaman a IMAPISupport::ModifyStatusRow para actualizar la tabla de estado en su método de inicio de sesión.
Nota:
Para lograr el mejor rendimiento en el momento del inicio de sesión, evite llamar a IMAPISupport::P repareSubmit o IMAPISupport::SpoolerNotify. Antes de que estas llamadas puedan completarse y devolver el control al método de inicio de sesión, se debe iniciar la cola MAPI.