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 propriété ; zéro s'il n'existe qu'un seul jeu de propriétés.pDBProp
L'ID de propriété et une nouvelle valeur dans une structure DBPROP.
Valeur de retour
Un HRESULT standard. La valeur renvoyée par défaut est S_OK.
Notes
Si vous souhaitez gérer les propriétés chaînées, telles que les signets ou mises à jour dont les valeurs dépendent d'une autre valeur de la propriété, vous devez remplacer cette fonction.
Exemple
Dans cette fonction, l'utilisateur obtient l'ID de propriété depuis le paramètre DBPROP*. Maintenant, il est possible de comparer l'ID et la propriété à 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, si on obtient DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS, ou la propriété DBPROP_ORDEREDBOOKMARKS, il est possible de définir la propriété 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
En-tête : atldb.h