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;
}