IMsgServiceAdmin::CreateMsgService
Aplica-se a: Outlook 2013 | Outlook 2016
Preterido: o uso de IMsgServiceAdmin2::CreateMsgServiceEx é recomendado. Adiciona um serviço de mensagem ao perfil atual.
HRESULT CreateMsgService(
LPSTR lpszService,
LPSTR lpszDisplayName,
ULONG_PTR ulUIParam,
ULONG ulFlags
);
Parâmetros
lpszService
[in] Um ponteiro para o nome do serviço de mensagem a ser adicionado. Esse nome do serviço de mensagem deve aparecer na seção [Serviços] do arquivo MapiSvc.inf.
lpszDisplayName
[in] Um ponteiro para o nome de exibição do serviço de mensagem a ser adicionado. O parâmetro lpszDisplayName será ignorado se o serviço de mensagem tiver definido a propriedade PR_DISPLAY_NAME (PidTagDisplayName) no arquivo MapiSvc.inf.
ulUIParam
[in] Um identificador para a janela pai de qualquer caixa de diálogo ou janelas que este método exibe.
ulFlags
[in] Um bitmask de sinalizadores que controla como o serviço de mensagem é instalado. Os seguintes sinalizadores podem ser definidos:
MAPI_UNICODE
Os parâmetros lpszService e lpszDisplayName devem ser lançados para LPWSTR e interpretados como cadeias de caracteres Unicode.
SERVICE_NO_RESTART_WARNING
Ao adicionar um novo serviço de mensagem ao perfil, o subsistema MAPI, com base em várias circunstâncias e critérios, geralmente determina que essa ação requer uma reinicialização do Outlook. Se o sinalizador SERVICE_NO_RESTART_WARNING não estiver incluído e a interface do usuário for permitida - com base nos sinalizadores SERVICE_UI_ALWAYS e SERVICE_UI_ALLOWED - e pelo menos um processo for registrado no perfil atual, essa função exibirá a mensagem "Você deve reiniciar o Outlook para que essas alterações entrem em vigor". Incluir o sinalizador SERVICE_NO_RESTART_WARNING suprime a exibição dessa mensagem de aviso.
SERVICE_UI_ALLOWED
A interface do usuário da configuração do serviço de mensagem é permitida, se necessário.
SERVICE_UI_ALWAYS
O serviço de mensagem exibe sua folha de propriedades de configuração.
Valor de retorno
S_OK
A chamada foi bem-sucedida e retornou o valor ou valores esperados.
MAPI_E_NOT_FOUND
O nome do serviço de mensagem não está na seção [Serviços] de MapiSvc.inf.
Comentários
O método IMsgServiceAdmin::CreateMsgService adiciona um serviço de mensagem ao perfil atual. CreateMsgService chama a função de ponto de entrada do serviço de mensagem para executar tarefas de configuração específicas do serviço. Se o sinalizador SERVICE_UI_ALLOWED for definido no parâmetro ulFlags , o serviço de mensagem que está sendo instalado poderá exibir uma folha de propriedades para permitir que o usuário configure suas configurações.
O arquivo MapiSvc.inf contém a lista de provedores que compõem um serviço de mensagem e as propriedades para cada um. CreateMsgService primeiro cria uma nova seção de perfil para o serviço de mensagens e, em seguida, copia todas as informações para esse serviço do arquivo MapiSvc.inf para o perfil, criando novas seções para cada provedor.
Depois que todas as informações forem copiadas de MapiSvc.inf, a função de ponto de entrada do serviço de mensagem é chamada com o valor MSG_SERVICE_CREATE definido no parâmetro ulContext . Se o sinalizador SERVICE_UI_ALLOWED for definido no parâmetro ulFlags do método CreateMsgService, os valores nos parâmetros ulUIParam e ulFlags também serão passados quando a função de ponto de entrada do serviço de mensagem for chamada. Os provedores de serviço devem exibir suas planilhas de propriedades de configuração para que os usuários possam configurar o serviço de mensagem.
Notas para chamadores
CreateMsgService não retorna a estrutura MAPIUID para o serviço de mensagem que foi adicionado ao perfil.
Para recuperar o MAPIUID para o serviço de mensagem criado, use o seguinte procedimento:
Chame o método IMsgServiceAdmin::GetMsgServiceTable para obter a tabela de administração do serviço de mensagem.
Localize a linha que representa o serviço de mensagem colocando uma restrição na tabela que corresponde à propriedade PR_SERVICE_NAME (PidTagServiceName) com o nome do serviço de mensagem.
Recupere a propriedade PR_SERVICE_UID do serviço (PidTagServiceUid).
Passe o valor da propriedade PR_SERVICE_UID no parâmetro lpUid para o método IMsgServiceAdmin::ConfigureMsgService para configurar o serviço.
Cuidado
A implementação Microsoft Outlook 2010 do subsistema MAPI não dá suporte a MAPI_UNICODE e falhará se ele for usado.
Importante
O ulFlags SERVICE_NO_RESTART_WARNING pode não ser definido no arquivo de cabeçalho para download que você tem atualmente, nesse caso, você pode adicioná-lo ao código usando o seguinte valor: #define SERVICE_NO_RESTART_WARNING 0x00000080
Referência do MFCMAPI
Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.
Arquivo | Função | Comentário |
---|---|---|
MAPIProfileFunctions.cpp |
HrAddServiceToProfile |
O MFCMAPI usa o método IMsgServiceAdmin::CreateMsgService para adicionar um serviço a um perfil. |