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