Partager via


Déterminer si un élément Outlook a été modifié mais non enregistré (Référence auxiliaire Outlook)

Cette rubrique indique comment utiliser l'ID de dispatch dispidFDirty pour appeler la propriété correspondante sur un élément Outlook, si l'élément a été modifié et n'a pas été enregistré.

Étant donné un objet de l'élément, vous pouvez utiliser la méthode IUnknown::QueryInterface pour obtenir un pointeur d'interface IDispatch . La fonction dans la rubrique FIsItemDirty accepte un pointeur IDispatch , pdisp, comme paramètre d’entrée. FIsItemDirty appelle la méthode IDispatch ::Invoke , en spécifiant dispidFDirty comme argument pour le paramètre dispIdMember , et les DISPATCH_METHOD | DISPATCH_PROPERTYGET indicateurs pour wFlags, pour vérifier si l’élément a été modifié. FIsItemDirty retourne une valeur booléenne (True pour indiquer que l’élément a des modifications non enregistrées ; sinon, False).

bool FIsItemDirty(IDispatch *pdisp)
{
    DISPPARAMS dispparams;
    UINT uArgErr;
    HRESULT hr = S_OK;
    CComVariant varDirty;
    dispparams.rgvarg = 0;
    dispparams.cArgs = 0;
    dispparams.cNamedArgs = 0;
    dispparams.rgdispidNamedArgs = NULL;
    hr = pdisp->Invoke(dispidFDirty,
        IID_NULL,
        LOCALE_SYSTEM_DEFAULT,
        DISPATCH_METHOD | DISPATCH_PROPERTYGET,
        &dispparams,
        &varDirty,
        NULL,
        &uArgErr);
    return SUCCEEDED(hr) && varDirty.bVal;
}

Voir aussi