Como usar o recurso Cached Exchange Mode com aplicativos de MAPI estendidos no Outlook 2003

Traduções deste artigo Traduções deste artigo
ID do artigo: 834496 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

INTRODUÇÃO

Modo de transferência em cache é um recurso novo no Microsoft Office Outlook 2003. Modo de transferência em cache permite que o Outlook 2003 para usar uma cópia local da caixa de correio do usuário enquanto o Outlook 2003 mantém uma conexão on-line para uma cópia remota da caixa de correio do usuário no Microsoft Exchange. É importante para desenvolvedores de MAPI estendido para compreender como esse recurso afeta suas soluções e como eles podem trabalhar com esse recurso.

Mais Informações

Se estiver executando o Outlook 2003 no modo de transferência em cache, quaisquer aplicativos MAPI estendido que efetuar logon na mesma sessão também estão conectados ao armazenamento de mensagens armazenadas em cache. Quaisquer dados que são acessados e quaisquer alterações feitas serão feitas em relação a cópia local da caixa de correio. Às vezes, você não deseja isso ocorra. O Outlook 2003 inclui um novo sinalizador é denominado MDB_ONLINE :
#define MDB_ONLINE ((ULONG) 0x00000100)
esse sinalizador pode ser passado para a função IMAPISession::OpenMsgStore MAPI. Este sinalizador substitui a conexão com o armazenamento de mensagens local e abre o armazenamento no servidor remoto.

Observação Esse sinalizador não permitirá que o armazenamento do Exchange a ser aberto no modo em cache e no modo não armazenada em cache ao mesmo tempo na mesma sessão do MAPI. Se você já tiver aberto o armazenamento de mensagens armazenadas em cache, você deve fechar ou o armazenamento antes de abri-lo com esse sinalizador ou abra uma nova sessão MAPI onde você pode abrir o armazenamento do Exchange no servidor remoto usando esse sinalizador.

The following code demonstrates how to use this flag:
    //Obtain the table of all the message stores that are available
    hRes = lpMAPISession -> GetMsgStoresTable(0, &pStoresTbl);
    
    //Set up restrictions for the default store
    sres.rt = RES_PROPERTY;                                  //Comparing a property
    sres.res.resProperty.relop = RELOP_EQ;                   //Testing equality
    sres.res.resProperty.ulPropTag = PR_DEFAULT_STORE;       //Tag to compare
    sres.res.resProperty.lpProp = &spv;                      //Prop tag and value to compare against
    
    spv.ulPropTag = PR_DEFAULT_STORE;                        //Tag type
    spv.Value.b   = TRUE;                                    //Tag value
    
    //Convert the table to an array that can be stepped through
    //Only one message store should have PR_DEFAULT_STORE set to true, so that only one will be returned
    hRes = HrQueryAllRows(
        pStoresTbl,                                          //Table to query
        (LPSPropTagArray) &sptCols,                          //Which columns to obtain
        &sres,                                               //Restriction to use
        NULL,                                                //No sort order
        0,                                                   //Max number of rows (0 means no limit)
        &pRow);                                              //Array to return
    
    //Open the first returned (default) message store
    hRes = lpMAPISession->OpenMsgStore(
        NULL,                                                //Window handle for dialogs
        pRow->aRow[0].lpProps[EID].Value.bin.cb,             //size and...
        (LPENTRYID)pRow->aRow[0].lpProps[EID].Value.bin.lpb, //value of entry to open
        NULL,                                                //Use default interface (IMsgStore) to open store
        MAPI_BEST_ACCESS | MDB_ONLINE,                       //Flags
        &lpTempMDB);                                         //Pointer to put the store in
Além disso, você pode ignorar o cache em itens específicos ou pastas, passando o sinalizador MAPI_NO_CACHE para a função MAPI IMsgStore::OpenEntry :
#define MAPI_NO_CACHE ((ULONG) 0x00000200)
O seguinte código demonstra como usar esse sinalizador:
    // Open the root folder of the message store
    hRes = lpMDB->OpenEntry(
        0,                                                   // size of entry ID                            
        NULL,                                                // Pointer to entry ID
        NULL,                                                // Use default interface (IMAPIFolder)
        MAPI_BEST_ACCESS | MAPI_NO_CACHE,                    // Flags
        &ulObjType,                                          // Output parameter indicates the type of object that is returned
        (LPUNKNOWN *)&lpRootFolder)))                        // Pointer to put the opened item in
Observação se você abriu o armazenamento de mensagens com o sinalizador MDB_ONLINE , não é necessário usar o sinalizador MAPI_NO_CACHE .

Propriedades

ID do artigo: 834496 - Última revisão: quinta-feira, 19 de maio de 2005 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • Microsoft Office Outlook 2003
Palavras-chave: 
kbmt kbprogramming kbsample kbmsg kbinfo KB834496 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 834496

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com