确定 Outlook 项目是否已修改但未 (Outlook 辅助引用)

本主题演示如何使用 dispidFDirty调度 ID 调用相应的属性,Outlook 项,可查看该项目是否已修改,并且尚未保存。

给定一个 item 对象,可以使用IUnknown::QueryInterface方法来获取的IDispatch接口指针。 主题 FIsItemDirty 中的函数接受 IDispatch 指针 pdisp 作为输入参数。 FIsItemDirty调用 IDispatch::Invoke 方法,将 dispidFDirty 指定为 dispIdMember 参数的参数以及 wFlags 的标志DISPATCH_METHOD | DISPATCH_PROPERTYGET,以验证是否已修改该项。 FIsItemDirty 返回一个布尔值 (True 以指示项具有未保存的更改;否则为 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;
}

另请参阅