Procédure pour déterminer si Outlook a uniquement téléchargé l’en-tête d’un message
S’applique à : Outlook 2013 | Outlook 2016
Cette rubrique présente un exemple de code en Visual C++ qui utilise la propriété canonique PidLidHeaderItem nommée pour déterminer si Microsoft Outlook 2013 a téléchargé uniquement l’en-tête d’un message ou l’en-tête et le corps d’un message.
BOOL bIsHeader(LPMESSAGE lpMessage)
{
HRESULT hRes = S_OK;
BOOL bRet = false;
ULONG ulVal = 0;
LPSPropValue lpPropVal = NULL;
LPSPropTagArray lpNamedPropTag = NULL;
MAPINAMEID NamedID = {0};
LPMAPINAMEID lpNamedID = NULL;
NamedID.lpguid = (LPGUID) &PSETID_Common;
NamedID.ulKind = MNID_ID;
NamedID.Kind.lID = dispidHeaderItem;
lpNamedID = &NamedID;
hRes = lpMessage->GetIDsFromNames(1, &lpNamedID, NULL, &lpNamedPropTag);
if (lpNamedPropTag && 1 == lpNamedPropTag->cValues)
{
lpNamedPropTag->aulPropTag[0] = CHANGE_PROP_TYPE(lpNamedPropTag->aulPropTag[0], PT_LONG);
//Get the value of the property.
hRes = lpMessage->GetProps(lpNamedPropTag, 0, &ulVal, &lpPropVal);
if (lpPropVal && 1 == ulVal && PT_LONG == PROP_TYPE(lpPropVal->ulPropTag) && lpPropVal->Value.ul)
{
bRet = true;
}
}
MAPIFreeBuffer(lpPropVal);
MAPIFreeBuffer(lpNamedPropTag);
return bRet;
}