Partager via


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

Voir aussi

Référence

classe de CUtlProps