Condividi tramite


CUtlProps::OnPropertyChanged

Chiamata dopo avere impostato una proprietà per gestire proprietà concatenate.

virtual HRESULT OnPropertyChanged( 
   ULONG /* iCurSet */, 
   DBPROP* pDBProp  
);

Parametri

  • iCurSet
    Indice nella matrice della raccolta di proprietà; zero se è presente solo un insieme di proprietà.

  • pDBProp
    La proprietà ID e un nuovo valore in una struttura di DBPROP.

Valore restituito

HRESULTstandard. Il valore restituito predefinito è S_OK.

Note

Se si desidera gestire proprietà concatenate, come segnalibri o aggiorna di valori che dipendono da un altro valore di proprietà, è necessario eseguire l'override della funzione.

Esempio

In questa funzione, l'utente ottiene la proprietà ID dal parametro di DBPROP*. Attualmente, è possibile confrontare l'id a una proprietà per concatenare. Quando la proprietà viene trovata, SetProperties viene chiamato con la proprietà che verrà impostata insieme all'altra proprietà. In questo caso, si ne ottiene DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS, o proprietà di DBPROP_ORDEREDBOOKMARKS, una può impostare la proprietà di 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;
}

Requisiti

Intestazione: atldb.h

Vedere anche

Riferimenti

Classe CUtlProps