Compartilhar via


Abrir uma pasta do repositório de mensagens

Aplica-se a: Outlook 2013 | Outlook 2016

Antes que qualquer pasta possa ser aberta, seu identificador de entrada deve estar disponível. Para a maioria das pastas, isso significa recuperar suas propriedades PR_ENTRYID . Para pastas especiais, como algumas das pastas subtree do IPM e outras pastas raiz, o MAPI define propriedades especiais do identificador de entrada acessíveis chamando o método IMAPIProp::GetProps do repositório de mensagens. Esses identificadores de entrada são sempre de longo prazo e são nomeados da seguinte maneira:

Folder Propriedade identificador de entrada
Pasta outbox
PR_IPM_OUTBOX_ENTRYID (PidTagIpmOutboxEntryId) (somente classe de mensagem IPM)
pasta Itens Excluídos
PR_IPM_WASTEBASKET_ENTRYID (PidTagIpmWastebasketEntryId)
Pasta Itens Enviados
PR_IPM_SENTMAIL_ENTRYID (PidTagIpmSentMailEntryId)
Pasta raiz IPM
PR_IPM_SUBTREE_ENTRYID (PidTagIpmSubtreeEntryId)
Pasta raiz de resultados de pesquisa
PR_FINDER_ENTRYID (PidTagFinderEntryId)
Pasta raiz de exibições comuns
PR_COMMON_VIEWS_ENTRYID (PidTagCommonViewsEntryId)
Pasta raiz de exibições pessoais
PR_VIEWS_ENTRYID (PidTagViewsEntryId)
Pasta raiz contatos
PR_IPM_CONTACT_ENTRYID (PidTagIpmContactEntryId)
Pasta raiz rascunhos
PR_IPM_DRAFTS_ENTRYID (PidTagIpmDraftsEntryId)
Diário pasta raiz
PR_IPM_JOURNAL_ENTRYID (PidTagIpmJournalEntryId)
Pasta raiz do calendário
PR_IPM_APPOINTMENT_ENTRYID (PidTagIpmAppointmentEntryId)
Anotações pasta raiz
PR_IPM_NOTE_ENTRYID (PidTagIpmNoteEntryId)
Pasta raiz tarefas
PR_IPM_TASK_ENTRYID (PidTagIpmTaskEntryId)

Antes de tentar recuperar um desses identificadores de entrada especiais, recupere a propriedade PR_VALID_FOLDER_MASK (PidTagValidFolderMask) do repositório de mensagens. PR_VALID_FOLDER_MASK é uma máscara de bits que identifica qual dos identificadores de entrada especiais existe. Há um bit para cada uma das pastas especiais. Se o bit estiver definido, ele indicará que a pasta correspondente tem suporte e tem um identificador de entrada válido. Por exemplo, se a pasta Itens Excluídos existir e tiver um identificador de entrada válido, o bit FOLDER_IPM_WASTEBASKET_VALID será definido em PR_VALID_FOLDER_MASK.

Abra a pasta em que todas as mensagens de entrada de uma determinada classe são colocadas

  1. Chame IMsgStore::GetReceiveFolder para recuperar seu identificador de entrada, definindo o parâmetro lpszMessageClass para apontar para uma cadeia de caracteres que identifica a classe de mensagem. Por exemplo, se você quiser abrir a caixa de entrada do subtree do IPM, aponte lpszMessageClass para IPM. Se você quiser abrir a pasta de recebimento de mensagens IPC, defina-a como ponto para IPC.

    Se não houver nenhuma pasta de recebimento registrada para a classe de mensagem, GetReceiveFolder escolherá a pasta de recebimento cuja classe de mensagem associada corresponde ao prefixo mais longo possível da classe de mensagem passada. Para obter mais informações, confira Pastas de Recebimento MAPI.

    Observe que a propriedade PR_IPM_OUTBOX_ENTRYID é usada para abrir a pasta Outbox somente para mensagens IPM. Se você estiver abrindo a Caixa de Saída para mensagens IPC, use em vez disso o identificador de entrada para sua pasta de recebimento. As mensagens IPC de entrada e saída são colocadas na pasta de recebimento.

  2. Chame um dos quatro métodos OpenEntry para abrir a pasta e retornar um ponteiro de interface que você pode usar para acessá-la. Você pode chamar qualquer um dos seguintes métodos para abrir uma pasta:

    O método específico escolhido depende da pasta a ser aberta e dos objetos que estão disponíveis no momento. Como o método IMAPISession pode abrir qualquer pasta para qualquer repositório de mensagens no perfil atual, chame este OpenEntry quando você não souber nada sobre a pasta a ser aberta. Se você souber qual repositório de mensagens possui a pasta e tiver um ponteiro para o repositório de mensagens, chame IMsgStore::OpenEntry.

    Por exemplo, use o método IMsgStore para abrir uma pasta de recebimento. Se você tiver um ponteiro para o objeto de logon do provedor de armazenamento de mensagens, chame IMSLogon::OpenEntry. Como essas chamadas vão diretamente para o provedor do repositório de mensagens e não para o MAPI, o processamento é mais rápido. Se a pasta que você está abrindo for uma subpasta de uma pasta que você já abriu, chame o método IMAPIContainer::OpenEntry da pasta aberta. O método IMAPIContainer só abre subpastas de uma pasta aberta no momento e é o único método garantido para trabalhar com identificadores de entrada de curto prazo.

  3. Se você quiser fazer alterações na pasta a ser aberta, especifique um nível de acesso definindo o sinalizador MAPI_BEST_ACCESS ou MAPI_MODIFY na chamada OpenEntry . Esses sinalizadores são sugestões ao provedor do repositório de mensagens para conceder o nível mais alto de acesso, para MAPI_BEST_ACCESS ou acesso de leitura/gravação, para MAPI_MODIFY, ao abrir a pasta.

    Como esses sinalizadores são apenas sugestões, a pasta pode ou não ser aberta com o nível de acesso esperado. Ao recuperar a propriedade PR_ACCESS (PidTagAccess), você pode determinar o intervalo de operações que podem ser executadas na pasta aberta.

    No entanto, como muitos provedores de armazenamento de mensagens calculam o valor dessa propriedade sob demanda, em vez de dar suporte a ela como uma propriedade de pasta ou como uma coluna em sua tabela de hierarquia, recuperá-la pode ser demorada. Uma estratégia alternativa é tentar qualquer operação necessária para executar e retornar um erro, se necessário.

Confira também