IMsgServiceAdmin::CreateMsgService
Hace referencia a: Outlook 2013 | Outlook 2016
En desuso: se recomienda el uso de IMsgServiceAdmin2::CreateMsgServiceEx . Agrega un servicio de mensajes al perfil actual.
HRESULT CreateMsgService(
LPSTR lpszService,
LPSTR lpszDisplayName,
ULONG_PTR ulUIParam,
ULONG ulFlags
);
Parameters
lpszService
[in] Puntero al nombre del servicio de mensajes que se va a agregar. Este nombre del servicio de mensajes debe aparecer en la sección [Servicios] del archivo MapiSvc.inf.
lpszDisplayName
[in] Puntero al nombre para mostrar del servicio de mensajes que se va a agregar. El parámetro lpszDisplayName se omite si el servicio de mensajes ha establecido la propiedad PR_DISPLAY_NAME (PidTagDisplayName) en el archivo MapiSvc.inf.
ulUIParam
[in] Identificador de la ventana primaria de los cuadros de diálogo o ventanas que muestra este método.
ulFlags
[in] Máscara de bits de marcas que controla cómo se instala el servicio de mensajes. Se pueden establecer las siguientes marcas:
MAPI_UNICODE
Los parámetros lpszService y lpszDisplayName deben convertirse en LPWSTR e interpretarse como cadenas Unicode.
SERVICE_NO_RESTART_WARNING
Al agregar un nuevo servicio de mensajes al perfil, el subsistema MAPI, en función de diversas circunstancias y criterios, a menudo determina que esta acción requiere un reinicio de Outlook. Si no se incluye la marca de SERVICE_NO_RESTART_WARNING y se permite la interfaz de usuario ,en función de las marcas de SERVICE_UI_ALWAYS y SERVICE_UI_ALLOWED, y al menos un proceso se registra en el perfil actual, esta función muestra el mensaje "Debe reiniciar Outlook para que estos cambios surtan efecto". La inclusión de la marca SERVICE_NO_RESTART_WARNING suprime la visualización de ese mensaje de advertencia.
SERVICE_UI_ALLOWED
La interfaz de usuario de configuración del servicio de mensajes se permite si es necesario.
SERVICE_UI_ALWAYS
El servicio de mensajes muestra su hoja de propiedades de configuración.
Valor devuelto
S_OK
La llamada se ha realizado correctamente y devuelva el valor esperado o los valores.
MAPI_E_NOT_FOUND
El nombre del servicio de mensajes no está en la sección [Servicios] de MapiSvc.inf.
Comentarios
El método IMsgServiceAdmin::CreateMsgService agrega un servicio de mensajes al perfil actual. CreateMsgService llama a la función de punto de entrada del servicio de mensajes para realizar cualquier tarea de configuración específica del servicio. Si la marca de SERVICE_UI_ALLOWED está establecida en el parámetro ulFlags , el servicio de mensajes que se instala puede mostrar una hoja de propiedades para permitir que el usuario configure sus opciones.
El archivo MapiSvc.inf contiene la lista de proveedores que componen un servicio de mensajes y las propiedades de cada uno. CreateMsgService crea primero una nueva sección de perfil para el servicio de mensajes y, a continuación, copia toda la información de ese servicio desde el archivo MapiSvc.inf en el perfil, creando nuevas secciones para cada proveedor.
Después de copiar toda la información de MapiSvc.inf, se llama a la función de punto de entrada del servicio de mensajes con el valor MSG_SERVICE_CREATE establecido en el parámetro ulContext . Si la marca SERVICE_UI_ALLOWED se establece en el parámetro ulFlags del método CreateMsgService, los valores de los parámetros ulUIParam y ulFlags también se pasan cuando se llama a la función de punto de entrada del servicio de mensajes. Los proveedores de servicios deben mostrar sus hojas de propiedades de configuración para que los usuarios puedan configurar el servicio de mensajes.
Notas para los llamadores
CreateMsgService no devuelve la estructura MAPIUID para el servicio de mensajes que se agregó al perfil.
Para recuperar MAPIUID para el servicio de mensajes creado, use el procedimiento siguiente:
Llame al método IMsgServiceAdmin::GetMsgServiceTable para obtener la tabla de administración del servicio de mensajes.
Busque la fila que representa el servicio de mensajes colocando una restricción en la tabla que coincida con la propiedad PR_SERVICE_NAME (PidTagServiceName) con el nombre del servicio de mensajes.
Recupere la propiedad PR_SERVICE_UID del servicio (PidTagServiceUid).
Pase el valor de la propiedad PR_SERVICE_UID en el parámetro lpUid al método IMsgServiceAdmin::ConfigureMsgService para configurar el servicio.
Precaución
La implementación Microsoft Outlook 2010 del subsistema MAPI no admite MAPI_UNICODE y producirá un error si se usa.
Importante
Es posible que el SERVICE_NO_RESTART_WARNING ulFlags no esté definido en el archivo de encabezado descargable que tiene actualmente, en cuyo caso puede agregarlo al código con el siguiente valor: #define SERVICE_NO_RESTART_WARNING 0x00000080
Referencia de MFCMAPI
Para obtener un ejemplo de código de MFCMAPI, vea la siguiente tabla.
Archivo | Función | Comment |
---|---|---|
MAPIProfileFunctions.cpp |
HrAddServiceToProfile |
MFCMAPI usa el método IMsgServiceAdmin::CreateMsgService para agregar un servicio a un perfil. |