CUtlProps::OnPropertyChanged
Вызывается после установки свойства дескриптора приковал свойства.
virtual HRESULT OnPropertyChanged(
ULONG /* iCurSet */,
DBPROP* pDBProp
);
Параметры
iCurSet
Индекс массива набора свойств; ноль, если только один набор свойств.pDBProp
Идентификатор свойства и новое значение в структуре DBPROP.
Возвращаемое значение
Стандартное HRESULT. Возвращаемое значение по умолчанию S_OK.
Заметки
Если необходимо обработать прикованные свойства, например закладки или обновления, значения зависят от других значения свойства, необходимо переопределить этой функции.
Пример
В этой функции, пользователь получает идентификатор свойства из параметра DBPROP*. Теперь, можно сравнить с идентификатор свойства для сцепления блоков. Если свойство найдено, SetProperties называется со свойством, теперь устанавливается вместе с другим свойством. В этом случае, если он получает DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS или свойство DBPROP_ORDEREDBOOKMARKS, одно может задать свойство DBPROP_BOOKMARKS.
HRESULT OnPropertyChanged(ULONG /*iCurSet*/, DBPROP* pDBProp)
{
ATLASSERT(pDBProp != NULL);
DWORD dwPropertyID = pDBProp->dwPropertyID;
if (dwPropertyID == DBPROP_IRowsetLocate ||
dwPropertyID == DBPROP_LITERALBOOKMARKS ||
dwPropertyID == DBPROP_ORDEREDBOOKMARKS)
{
CComVariant var = pDBProp->vValue;
if (var.boolVal == VARIANT_TRUE)
{
// Set the bookmarks property as these are chained
CComVariant bookVar(true);
CDBPropSet set(DBPROPSET_ROWSET);
set.AddProperty(DBPROP_BOOKMARKS, bookVar);
return SetProperties(1, &set);
}
}
return S_OK;
}
Требования
Header: atldb.h