Compartilhar via


IMsgServiceAdmin2::CreateMsgServiceEx

Aplica-se a: Outlook 2013 | Outlook 2016

Adiciona um serviço de mensagens ao perfil atual e devolve esse UID de serviço adicionado recentemente.

HRESULT CreateMsgServiceEx(
  LPSTR lpszService,
  LPSTR lpszDisplayName,
  ULONG_PTR ulUIParam,
  ULONG ulFlags, 
  LPMAPIUID lpuidService
);

Parâmetros

lpszService

[in] Um ponteiro para o nome do serviço de mensagens a adicionar. Este nome do serviço de mensagens tem de aparecer na secção [Serviços] do ficheiro MapiSvc.inf.

lpszDisplayName

[in] Um ponteiro para o nome a apresentar do serviço de mensagens a adicionar. O parâmetro lpszDisplayName é ignorado se o serviço de mensagens tiver definido a propriedade PR_DISPLAY_NAME (PidTagDisplayName) no ficheiro MapiSvc.inf.

ulUIParam

[in] Uma alça para a janela principal de quaisquer caixas de diálogo ou janelas apresentadas por este método.

ulFlags

[in] Uma máscara de bits de sinalizadores que controla a forma como o serviço de mensagens é instalado. Os seguintes sinalizadores podem ser definidos:

MAPI_UNICODE

Os parâmetros lpszService e lpszDisplayName devem ser convertidos em LPWSTR e interpretados como cadeias Unicode.

SERVICE_NO_RESTART_WARNING

Ao adicionar um novo serviço de mensagens ao perfil, o subsistema MAPI, com base em várias circunstâncias e critérios, determina frequentemente que esta ação requer um reinício do Outlook. Se o sinalizador de SERVICE_NO_RESTART_WARNING não estiver incluído e a IU for permitida - com base nos sinalizadores SERVICE_UI_ALWAYS e SERVICE_UI_ALLOWED - e pelo menos um processo estiver registado no perfil atual, esta função apresenta a mensagem "Tem de reiniciar o Outlook para que estas alterações entrem em vigor". Incluir o sinalizador SERVICE_NO_RESTART_WARNING suprime a apresentação dessa mensagem de aviso.

SERVICE_UI_ALLOWED

A IU de configuração do serviço de mensagens é permitida, se necessário.

SERVICE_UI_ALWAYS

O serviço de mensagens apresenta a respetiva folha de propriedades de configuração.

lpuidService

[fora] O ponteiro para o UID do serviço de mensagens adicionado.

Valor de retorno

S_OK

A chamada foi efetuada com êxito e devolveu o valor ou valores esperados.

MAPI_E_NOT_FOUND

O nome do serviço de mensagens não está na secção [Serviços] de MapiSvc.inf.

Comentários

O método IMsgServiceAdmin2::CreateMsgServiceEx adiciona um serviço de mensagens ao perfil atual. CreateMsgServiceEx chama a função de ponto de entrada do serviço de mensagens para executar quaisquer tarefas de configuração específicas do serviço. Se o sinalizador de SERVICE_UI_ALLOWED estiver definido no parâmetro ulFlags , o serviço de mensagens que está a ser instalado pode apresentar uma folha de propriedades que permite ao utilizador configurar as respetivas definições.

O ficheiro MapiSvc.inf contém a lista de fornecedores que compõem um serviço de mensagens e as propriedades de cada um. CreateMsgServiceEx cria primeiro uma nova secção de perfil para o serviço de mensagens e, em seguida, copia todas as informações desse serviço do ficheiro MapiSvc.inf para o perfil, criando novas secções para cada fornecedor.

Depois de todas as informações terem sido copiadas de MapiSvc.inf, a função de ponto de entrada do serviço de mensagens, MSGSERVICEENTRY, é chamada com o valor MSG_SERVICE_CREATE definido no parâmetro ulContext . Se o sinalizador SERVICE_UI_ALLOWED estiver definido no parâmetro ulFlags do método CreateMsgServiceEx, os valores nos parâmetros ulUIParam e ulFlags também são transmitidos quando a função de ponto de entrada do serviço de mensagens é chamada. Os fornecedores de serviços devem apresentar as respetivas folhas de propriedades de configuração para que os utilizadores possam configurar o serviço de mensagens.

Notas para chamadores

Se o argumento CreateMsgServiceExlpuidService não for NULL, a propriedade PR_SERVICE_UID (PidTagServiceUid) do serviço de mensagens que foi adicionado ao perfil é devolvida no GUID para o qual aponta.

Transmita o valor da propriedade PR_SERVICE_UID no parâmetro lpuidService para o método IMsgServiceAdmin::ConfigureMsgService para configurar o serviço.

Cuidado

A implementação do Microsoft Outlook 2010 do subsistema MAPI não suporta MAPI_UNICODE e falhará se for utilizado.

Importante

A interface IMsgServiceAdmin2 é exposta pelo mesmo objeto que implementa a interface IMsgServiceAdmin e está disponível através da implementação do subsistema MAPI pelo Outlook desde o Outlook 2003. O IID é definido da seguinte forma: #if !defined(INITGUID) || defined(USES_IID_IMsgServiceAdmin2)DEFINE_OLEGUID(IID_IMsgServiceAdmin2,0x00020387, 0, 0);> o ulFlags SERVICE_NO_RESTART_WARNING poderá não ser definido no ficheiro de cabeçalho transferível que tem atualmente, caso em que pode adicioná-lo ao seu código com o seguinte valor: #define SERVICE_NO_RESTART_WARNING 0x00000080

Confira também

IMsgServiceAdmin2: IMsgServiceAdminMFCMAPI como um Exemplo de Código