virtual HRESULT OnPropertyChanged (ULONG iCurSet, DBPROP * pDBProp );
Valor de retorno
Um padrão HRESULT. O valor de retorno padrão é S_OK.
Parâmetros
iCurSet
O índice para a matriz de conjunto de propriedades; zero se não existe apenas uma propriedade definida.
pDBProp
A identificação de propriedade e o novo valor em uma estrutura DBPROP.
Observações
Se você deseja manipular propriedades encadeadas, como marcadores ou atualizações cujos valores são dependentes de um outro valor propriedade, você deve substituir essa função. O MYPROV exemplo demonstra como usar OnPropertyChanged para lidar com bookmarking.
Exemplo
Nessa função, o usuário obtém a ID de propriedade da DBPROP* parâmetro. Agora, é possível comparar o ID contra uma propriedade de cadeia. Quando a propriedade for localizada, SetProperties é chamado com a propriedade que agora será definida em conjunto com a propriedade de outro. Neste caso, se obtém o DBPROP_IRowsetLocate , DBPROP_LITERALBOOKMARKS , ou DBPROP_ORDEREDBOOKMARKS propriedade, que um pode definir a DBPROP_BOOKMARKS propriedade.
HRESULT OnPropertyChanged(ULONG iCurSet, DBPROP* pDBProp)
{
ATLASSERT (pDBProp! = NULL);
DWORD dwPropertyID = pDBProp-gt; dwPropertyID;
se (dwPropertyID = = DBPROP_IRowsetLocate | |
dwPropertyID = = DBPROP_LITERALBOOKMARKS | |
dwPropertyID = = DBPROP_ORDEREDBOOKMARKS)
{
CComVariant var = pDBProp - > vValue;
se (var.boolVal = = VARIANT_TRUE)
{
/ / Definir a propriedade de marcadores como estas são encadeadas
CComVariant bookVar(true);
CDBPropSet set(DBPROPSET_ROWSET);
Defina.AddProperty (DBPROP_BOOKMARKS, bookVar);
retornar SetProperties (1, & Definir);
}
}
retornar S_OK;
}