Compartilhar via


HrValidateIPMSubtree

Aplica-se a: Outlook 2013 | Outlook 2016

Adiciona pastas IPM (mensagem interpessoal padrão) a um repositório de mensagens.

Propriedade Valor
Arquivo de cabeçalho: Mapiutil.h
Implementado por: MAPI
Chamado por: Aplicativos do cliente
HrValidateIPMSubtree(
  LPMDB lpMDB,
  ULONG ulFlags,
  ULONG FAR * lpcValues,
  LPSPropValue FAR * lppProps,
  LPMAPIERROR FAR * lppMapiError
);

Parâmetros

lpMDB

[in] Ponteiro para o objeto do repositório de mensagens ao qual adicionar as pastas.

ulFlags

[in] A máscara de bits de sinalizadores usada para controlar como as pastas são criadas. Os seguintes sinalizadores podem ser definidos:

MAPI_FORCE_CREATE

As pastas devem ser verificadas antes da criação, mesmo que as propriedades do repositório de mensagens indiquem que elas são válidas. Normalmente, um aplicativo cliente define esse sinalizador quando um erro indica que a estrutura de uma pasta existente foi danificada.

MAPI_FULL_IPM_TREE

O conjunto completo de pastas IPM deve ser criado na pasta raiz do repositório de mensagens. Os títulos de pasta na hierarquia são:

  • Exibições de pasta
  • Exibições comuns
  • Raiz de pesquisa*
  • Subtree do IPM*
  • Caixa de Entrada
  • Caixa de saída
  • Itens excluídos*
  • Itens enviados

em que as três pastas marcadas com * são o conjunto mínimo criado mesmo quando o sinalizador de MAPI_FULL_IPM_TREE não foi definido. Normalmente, um aplicativo cliente define esse sinalizador quando o repositório de mensagens no qual as pastas devem ser criadas é o repositório padrão.

lpcValues

[in, out] Ponteiro para o número de estruturas SPropValue na matriz retornada no parâmetro lppProps . O valor do parâmetro lpcValues pode ser zero se lppProps for NULL.

lppProps

[in, out] Ponteiro para um ponteiro para uma matriz de estruturas SPropValue que contém valores de propriedade para a propriedade PR_VALID_FOLDER_MASK (PidTagValidFolderMask) e para as propriedades apropriadas do identificador de entrada de pasta. Se HrValidateIPMSubtree criar uma caixa de entrada no repositório de mensagens, a matriz SPropValue inclui um identificador de entrada da caixa de entrada com uma marca de propriedade especial codificada como PROP_TAG(PT_BINARY, PROP_ID_NULL). O parâmetro lppProps pode ser NULL, indicando que a implementação de chamada não exige que uma matriz SPropValue seja retornada.

lppMapiError

[out] Ponteiro para um ponteiro para uma estrutura MAPIERROR que contém informações de versão, componente e contexto para um erro. O parâmetro lppMAPIError será definido como NULL se nenhuma estrutura MAPIERROR for retornada.

Valor de retorno

Nenhum.

Comentários

O MAPI usa a função HrValidateIPMSubtree internamente para construir a sub-árvore IPM padrão em um repositório de mensagens quando o repositório é aberto pela primeira vez ou quando um repositório é feito o repositório padrão. Essa função também pode ser usada por aplicativos cliente para validar ou reparar pastas de mensagem padrão.

HrValidateIPMSubtree sempre cria as pastas Raiz de Pesquisa e Subtree do IPM na pasta raiz do repositório e a pasta Itens Excluídos na pasta Subtree do IPM. A pasta Subtree do IPM é a raiz da hierarquia do IPM nesse repositório de mensagens. A pasta Raiz de Pesquisa pode ser usada como a raiz de uma sub-árvore para pastas de resultados de pesquisa.

Os clientes IPM devem exibir a exibição da pasta começando na pasta raiz de sub-árvore do IPM e mostrando pastas filho abaixo dela. As informações na pasta raiz de um repositório de mensagens não devem aparecer na interface do usuário de um cliente. Essa funcionalidade significa que, se um cliente precisar ocultar informações, as informações poderão ser colocadas no diretório raiz de sub-árvore do IPM, em que ela não estará visível para o usuário. Por outro lado, aplicativos que não são IPM que exigem mensagens e pastas para serem invisíveis para o usuário, por exemplo, em um repositório de mensagens baseado em servidor, podem colocá-los fora da hierarquia IPM.

HrValidateIPMSubtree define a propriedade PR_VALID_FOLDER_MASK para indicar se cada pasta IPM criada tem um identificador de entrada válido. As seguintes propriedades do identificador de entrada do repositório de mensagens são definidas como os identificadores de entrada das pastas correspondentes e retornadas no parâmetro lppProps junto com PR_VALID_FOLDER_MASK:

PR_COMMON_VIEWS_ENTRYID (PidTagCommonViewsEntryId)

PR_FINDER_ENTRYID (PidTagFinderEntryId)

PR_IPM_OUTBOX_ENTRYID (PidTagIpmOutboxEntryId)

PR_IPM_SENTMAIL_ENTRYID (PidTagIpmSentMailEntryId)

PR_IPM_SUBTREE_ENTRYID (PidTagIpmSubtreeEntryId)

PR_IPM_WASTEBASKET_ENTRYID (PidTagIpmWastebasketEntryId)

PR_VIEWS_ENTRYID (PidTagViewsEntryId)

Um espaço reservado PROP_TAG para a caixa de entrada IPM (PT_BINARY, PROP_ID_NULL).

Referência do MFCMAPI

Para ver códigos de exemplo do MFCMAPI, confira a tabela a seguir.

Arquivo Função Comentário
MstStoreDlg.cpp CMsgStoreDlg::OnValidateIPMSubtree O MFCMAPI usa o método HrValidateIPMSubtree para adicionar pastas padrão a um repositório de mensagens.

Confira também

IMAPISession::OpenMsgStoreMFCMAPI como exemplo de código