Compartir a través de


Registro de servicios y proveedores de servicios en MapiSvc.inf

Hace referencia a: Outlook 2013 | Outlook 2016

La instalación de un nuevo proveedor en un sistema requiere actualizar el archivo MapiSvc.inf para que apunte al nuevo proveedor. Las propiedades estándar establecidas durante la configuración, que incluyen lo siguiente, informan a MAPI dónde encontrar la biblioteca de vínculos dinámicos del proveedor (.dll):

  • El PR_SERVICE_DLL_NAME se especifica en la sección [Servicio de mensajes] .

  • El PR_PROVIDER_DLL_NAME se especifica en la sección [Proveedor de servicios] .

Nota:

La expectativa es que establezca el nombre del .dll del proveedor (sin el sufijo "32"). A continuación, MAPI carga el proveedor buscándolo en la ruta de acceso.

Colocación de una ruta de acceso en MapiSvc.inf

La mayoría de las aplicaciones se instalan en Archivos de programa, lo que requiere una actualización de la variable de ruta de acceso para permitir que los proveedores MAPI funcionen. Con algunas restricciones Microsoft Outlook 2010 y Outlook 2013 pueden dar cabida a rutas de acceso completas a proveedores MAPI.

Al registrar el proveedor en MapiSvc.inf, podría colocar la ruta de acceso completa al proveedor en las propiedades MAPI PR_SERVICE_DLL_NAME y PR_PROVIDER_DLL_NAME.

En cualquiera de las propiedades, la ruta de acceso completa debe estar sin el sufijo "32", ya que MAPI sigue anexando al nombre de archivo antes de buscar el archivo. Esto significa que si registra la ruta de acceso "c:\mypath\myprovider.dll", MAPI intentará cargar "c:\mypath\myprovider32.dll".

Dado que MAPI de Outlook no se diseñó originalmente para dar cabida a rutas de acceso completas, realiza esta inserción del sufijo "32" buscando el primer período en la cadena, lo que significa que las rutas de acceso que contienen otros períodos no pueden funcionar, por lo que no puede usar rutas de acceso como "c:\my.path\myprovider.dll" o "c:\mypath\my.provider.dll".

A veces, en un proveedor de almacén generará identificadores de entrada mediante la función WrapStoreEntryID , que toma como parámetro el nombre del proveedor.

Importante

Si usa rutas de acceso completas en MapiSvc.inf, debe usar la misma ruta de acceso en las llamadas a WrapStoreEntryID.

Además, la ruta de acceso que usa se puede convertir a Unicode y desde esta con la página de códigos proporcionada por la función GetACP .

Precaución

Experimentará un error si elige una ruta de acceso que contiene caracteres que no pueden sobrevivir a este tipo de ida y vuelta a través de las funciones MultiByteToWideChar y WideCharToMultiByte .

Para una demostración de esta funcionalidad, se ha revisado el ejemplo de PST ajustado en GitHub: la funcionalidad pertinente está en MergeWithMapiSvc y GenerateProviderPath.