Compartilhar via


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:

  1. Chame o método IMsgServiceAdmin::GetMsgServiceTable para obter a tabela de administração do serviço de mensagem.

  2. 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.

  3. Recupere a propriedade PR_SERVICE_UID do serviço (PidTagServiceUid).

  4. 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.

Confira também

IMsgServiceAdmin : IUnknownMFCMAPI como exemplo de código