Freigeben über


Ermitteln, ob ein Outlook-Element geändert, aber nicht gespeichert wurde (Outlook-Hilfsreferenz)

In diesem Thema wird veranschaulicht, wie Sie die dispidFDirty -Dispatch-ID verwenden, rufen Sie die entsprechende Eigenschaft für ein Outlook-Element, um festzustellen, ob das Element geändert wurde und nicht gespeichert wurde noch.

Item-Objekt können Sie die IUnknown::QueryInterface -Methode verwenden, um einen IDispatch -Schnittstellenzeiger zu erhalten. Die Funktion im Thema FIsItemDirty akzeptiert den IDispatch-Zeigerpdisp als Eingabeparameter. FIsItemDirty ruft die IDispatch::Invoke-Methode auf, wobei dispidFDirty als Argument für den dispIdMember-Parameter und die Flags DISPATCH_METHOD | DISPATCH_PROPERTYGET für wFlags angegeben werden, um zu überprüfen, ob das Element geändert wurde. FIsItemDirty gibt einen booleschen Wert zurück (True , um anzugeben, dass das Element nicht gespeicherte Änderungen aufweist, andernfalls 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;
}

Siehe auch