Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Outlook 2013 | Outlook 2016
O seguinte código de exemplo mostra como criar uma restrição que filtra todas as mensagens que não contêm a palavra "voleibol" na linha de assunto e que não foram enviadas para a Teresa a partir de Sam. É necessária uma árvore de estruturas SRestriction , sendo o nó superior uma restrição AND implementada com uma estrutura SAndRestriction . As três restrições associadas à operação E são uma restrição de subobjeto que procura mensagens enviadas para Sue, uma restrição de conteúdo que procura mensagens de Sam, e outra restrição AND que procura mensagens que tenham um assunto que contenha "voleibol". Uma vez que PR_SUBJECT (PidTagSubject) não é uma propriedade necessária, tem de ser incluída uma restrição Existe .
Este código utiliza a alocação e inicialização dinâmicas; também é possível alocar e inicializar estaticamente. Por uma questões de brevidade, a verificação de erros que tem de ocorrer após as chamadas de alocação não está incluída no exemplo.
HRESULT BuildRestriction (LPSTR pszSent, LPSTR pszFrom,
LPSTR pszSubjectText);
{
LPSRestriction pRest, pAndRes, pObjRes, pSubjAndRes;
LPSPropValue pRecip, pSender, pSubject;
HRESULT hResult;
ULONG ulResCount = 3, ulSubjCount = 2
// Allocate and build restriction to join criteria
hResult = MAPIAllocateMore (sizeof(SRestriction)*ulResCount, pRest,
(LPVOID *)&pAndRes);
pRest->rt = RES_AND;
pRest->res.resAnd.cRes = ulResCount;
pRest->res.resAnd.lpRes = pAndRes;
// Allocate and build subobject restriction to search recipient list
hResult = MAPIAllocateMore (sizeof(SRestriction), pRest,
(LPVOID *)&pObjRes);
pAndRes[0].rt = RES_SUBRESTRICTION;
pAndRes[0].res.resSub.ulSubObject = PR_MESSAGE_RECIPIENTS;
pAndRes[0].res.resSub.lpRes = pObjRes;
// Allocate and build content restriction to look for recipient
hResult = MAPIAllocateMore (sizeof(SPropValue), pRest,
(LPVOID *)&pRecip);
pObjRes->rt = RES_CONTENT;
pObjRes->res.resContent.ulFuzzyLevel =
FL_FULLSTRING | FL_IGNORECASE;
pObjRes->res.resContent.ulPropTag = pRecip->ulPropTag =
PR_DISPLAY_NAME;
pObjRes->res.resContent.lpProp = pRecip;
pRecip->Value.LPSZ = pszSent; // pszSent set to Sue
// Allocate and build content restriction to look for sender
hResult = MAPIAllocateMore (sizeof(SPropValue), pRest,
(LPVOID *)&pSend);
pAndRes[1].rt = RES_CONTENT;
pAndRes[1].res.resContent.ulFuzzyLevel =
FL_FULLSTRING | FL_IGNORECASE;
pAndRes[1].res.resContent.ulPropTag = pSend->ulPropTag =
PR_SENDER_NAME;
pAndRes[1].res.resContent.lpProp = pSend;
pSend->Value.LPSZ = pszName; // pszName set to Sam
// Allocate and build restriction to look for subject
hResult = MAPIAllocateMore (sizeof(SRestriction)*ulSubjCount, pRest,
(LPVOID *)&pSubjAndRes);
pRest->rt = RES_AND;
pRest->res.resAnd.cRes = ulResCount;
pRest->res.resAnd.lpRes = pAndRes;
// Create an restriction to search for subject
hResult = MAPIAllocateMore (sizeof(SPropValue), pRest,
(LPVOID *)&pSubjAndRes);
pAndRes[2].rt = RES_AND;
pAndRes[2].res.resAnd.cRes = ulSubjCount;
pAndRes[2].res.resAnd.lpRes = pSubjAndRes;
// Exist restriction to check that PR_SUBJECT exists
hResult = MAPIAllocateMore (sizeof(SPropValue), pRest,
(LPVOID *)&pSubj);
pSubjAndRes[0].rt = RES_EXIST;
pSubjAndRes[0].res.resExist.ulReserved1 = 0;
pSubjAndRes[0].res.resExist.ulReserved2 = 0;
pSubjAndRes[0].res.resExist.ulPropTag = PR_SUBJECT;
// Content restriction to check for "volleyball" in subject
hResult = MAPIAllocateMore (sizeof(SPropValue), pRest,
(LPVOID *)&pSubj);
pSubjAndRes[1].res.resContent.ulFuzzyLevel =
FL_SUBSTRING | FL_IGNORECASE;
pSubjAndRes[1].res.resContent.ulPropTag = pSubj->ulPropTag =
PR_SUBJECT;
pSubjAndRes[1].res.resContent.lpProp = pSubj;
pSubj->Value.LPSZ = pszSubjectText;
return hResult;
}