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 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

Voir aussi

Référence

CUtlProps, classe