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