CUtlProps::OnPropertyChanged
Chamado depois de definir uma propriedade para tratar encadeou propriedades.
virtual HRESULT OnPropertyChanged(
ULONG /* iCurSet */,
DBPROP* pDBProp
);
Parâmetros
iCurSet
O índice na matriz do conjunto de propriedades; zero se houver apenas um conjunto de propriedades.pDBProp
A ID da propriedade e o novo valor em uma estrutura de DBPROP .
Valor de retorno
HRESULTpadrão. O valor de retorno padrão é S_OK.
Comentários
Se você quiser tratar propriedades encadeadas, como os indicadores ou atualiza dos quais valores são dependentes em outro valor da propriedade, você deve substituir essa função.
Exemplo
Nessa função, o usuário obtém a ID de propriedade do parâmetro de DBPROP* . Agora, é possível comparar a ID em uma propriedade da cadeia. Quando a propriedade for localizada, SetProperties é chamado com a propriedade que será definida agora junto com outra propriedade. Nesse caso, se obtém DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS, ou a propriedade de DBPROP_ORDEREDBOOKMARKS , uma possível definir a propriedade de 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;
}
Requisitos
Header: atldb.h