віртуальний HRESULT OnPropertyChanged (ULONG iCurSet, DBPROP * pDBProp );
Значення, яке повертається
Стандартний HRESULT. Повернути значення за замовчуванням — S_OK.
Параметри
iCurSet
Індекс масиву набір властивостей; нуль, якщо є тільки одним властивістю набір.
pDBProp
КОД і нове значення у DBPROP структури.
Зауваження
Якщо ви хочете, щоб впоратися ланцюгових властивості, такі як закладки або оновлення, значення якого залежать від значення іншого майна, повинна пересилити цю функцію. На MYPROV приклад демонструє, як використовувати OnPropertyChanged для обробки закладок.
Приклад
У цієї функції, користувач отримує майно ID від в DBPROP* параметр. Тепер є можливість порівняти ID проти майно, в ланцюжку. Коли знайдено властивість, SetProperties називається з майном, яке тепер будуть використовувати в поєднанні з іншого майна. У цьому випадку, якщо один отримує на DBPROP_IRowsetLocate , DBPROP_LITERALBOOKMARKS , або DBPROP_ORDEREDBOOKMARKS нерухомості, один можна встановити на DBPROP_BOOKMARKS власності.
HRESULT OnPropertyChanged(ULONG iCurSet, DBPROP* pDBProp)
{
ATLASSERT (pDBProp! = NULL);
DWORD dwPropertyID = pDBProp gt; dwPropertyID;
Якщо (dwPropertyID = = DBPROP_IRowsetLocate | |
dwPropertyID = = DBPROP_LITERALBOOKMARKS | |
dwPropertyID = = DBPROP_ORDEREDBOOKMARKS)
{
CComVariant var = pDBProp - > vValue;
Якщо (var.boolVal = = VARIANT_TRUE)
{
/ / Встановити властивості закладки, як ці ланцюгові
CComVariant bookVar(true);
CDBPropSet set(DBPROPSET_ROWSET);
набір.AddProperty (DBPROP_BOOKMARKS, bookVar);
повернення SetProperties (1 і встановити);
}
}
повернення S_OK;
}