CUtlProps::OnPropertyChanged
Appelé après avoir défini une propriété pour gérer les propriétés chaînées.
virtual HRESULT OnPropertyChanged(
ULONG /* iCurSet */,
DBPROP* pDBProp
);
Paramètres
iCurSet
L'index dans le tableau de jeu de propriétés ; zéro s'il y a un seul jeu de propriétés.pDBProp
L'ID de propriété et la nouvelle valeur dans une structure de DBPROP .
Valeur de retour
HRESULTstandard.La valeur de retour par défaut est S_OK.
Notes
Si vous souhaitez gérer les propriétés chaînées, telles que les signets ou met à jour les valeurs dépendent d'une autre valeur de propriété, vous devez substituer cette fonction.
Exemple
Dans cette fonction, l'utilisateur obtient l'ID de propriété du paramètre d' DBPROP* .Maintenant, il est possible de comparer l'ID par rapport à une propriété pour chaîner.Lorsque la propriété est trouvée, SetProperties est appelé avec la propriété qui est maintenant définie avec l'autre propriété.Dans ce cas, s'il obtient DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS, ou la propriété d' DBPROP_ORDEREDBOOKMARKS , il peut définir la propriété d' 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;
}
Configuration requise
Header: atldb.h