Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Hace referencia a: Outlook 2013 | Outlook 2016
Todas las aplicaciones cliente que usan las bibliotecas MAPI deben llamar a la función MAPIInitialize . Para obtener más información, vea MAPIInitialize. MAPIInitialize inicializa los datos globales de la sesión y prepara las bibliotecas MAPI para aceptar llamadas. Hay algunas marcas que son importantes establecer en algunas situaciones:
MAPI_NT_SERVICE
Establezca la marca de MAPI_NT_SERVICE si el cliente se implementa como un servicio de Windows. Si el cliente es un servicio de Windows y no establece esta marca, MAPI no lo reconocerá como servicio.
MAPI_MULTITHREAD_NOTIFICATIONS
La marca de MAPI_MULTITHREAD_NOTIFICATIONS se relaciona con la forma en que MAPI administra las notificaciones. MAPI crea una ventana oculta que recibe mensajes de ventana cuando se producen cambios en un objeto que genera notificaciones. Los mensajes de ventana se procesan en algún momento, lo que hace que se envíen las notificaciones y se llame a los métodos IMAPIAdviseSink::OnNotify adecuados.
MAPI_NO_COINIT
Establezca la marca MAPI_NO_COINT para que MAPIInitialize no intente inicializar COM con una llamada a CoInitialize. Si se pasa una estructura MAPIINIT_0 a MAPIInitialize con ulFlags establecido en MAPI_NO_COINIT, MAPI asumirá que COM ya se ha inicializado y omitirá la llamada a CoInitialize.
Si no se pasa MAPI_MULTITHREAD_NOTIFICATIONS marca, MAPI crea la ventana de notificación en el subproceso que se usó para la primera llamada MAPIInitialize . MAPI crea la ventana de notificación en un subproceso independiente si se pasa MAPI_MULTITHREAD_NOTIFICATIONS, un subproceso dedicado al control de notificaciones. MAPI espera que el subproceso que se usa para crear la ventana de notificación oculta para:
Tener un bucle de mensajes.
Permanezca desbloqueado durante toda la vida útil de la sesión.
Tenga una duración más larga que cualquier otro subproceso creado por el cliente.
Puede elegir qué subproceso se usa estableciendo una marca en la primera llamada MAPIInitialize . El peligro de permitir que uno de los subprocesos controle las notificaciones es que, si el subproceso desaparece, la ventana de notificación se destruye y las notificaciones ya no se pueden enviar a ninguno de los demás subprocesos. Además, es posible que se necesite un procesamiento especial para controlar el envío de los mensajes de notificación que se publican en la cola de mensajes de la ventana oculta.
Si usa una ventana independiente para controlar las notificaciones, asegúrese de que las notificaciones aparecerán en el momento adecuado en un subproceso adecuado. No necesitará ningún código especial para buscar y procesar los mensajes de Windows que se publican en la ventana de notificación.
MAPI recomienda que los siguientes tipos de aplicaciones cliente usen un subproceso independiente para crear la ventana oculta para la compatibilidad con notificaciones:
Todos los clientes multiproceso.
Servicios de Windows de un solo subproceso y aplicaciones de consola win32.
Clientes de un solo subproceso que no necesitan usar su subproceso principal para la notificación.
Para usar el enfoque de subproceso independiente, llame a MAPIInitialize en cada subproceso y establezca la marca de MAPI_MULTITHREAD_NOTIFICATIONS.
Nota:
Solo la primera llamada de un cliente a MAPIInitialize hace que se cree una ventana oculta para admitir notificaciones. Las llamadas posteriores solo hacen que se incremente un recuento de referencias.