virtual de HRESULT de OnPropertyChanged (ULONG iCurSet, DBPROP * pDBProp );
Valor devuelto
Un estándar HRESULT. El valor devuelto por defecto es S_OK.
Parámetros
iCurSet
El índice de la matriz del conjunto de propiedades; cero si no hay una única propiedad establecida.
pDBProp
El ID de la propiedad y el nuevo valor en un DBPROP estructura.
Observaciones
Si desea controlar propiedades encadenadas, tales como los marcadores o actualizaciones cuyos valores dependen del valor de la propiedad de otro, se debe reemplazar esta función. El MYPROV ejemplo muestra cómo utilizar OnPropertyChanged para manejar marcadores.
Ejemplo
En esta función, el usuario obtiene el identificador de propiedad de la DBPROP* parámetro. Ahora, es posible comparar el ID contra una propiedad de cadena. Cuando la propiedad se encuentra, SetProperties se llama a la propiedad que ahora se establecerá junto con la otra propiedad. En este caso, si uno obtiene el DBPROP_IRowsetLocate , DBPROP_LITERALBOOKMARKS , o DBPROP_ORDEREDBOOKMARKS propiedad, uno puede establecer la DBPROP_BOOKMARKS propiedad.
HRESULT OnPropertyChanged(ULONG iCurSet, DBPROP* pDBProp)
{
ATLASSERT (pDBProp! = NULL);
DWORD dwPropertyID = pDBProp-gt; dwPropertyID;
Si (dwPropertyID == DBPROP_IRowsetLocate ||
dwPropertyID == DBPROP_LITERALBOOKMARKS ||
dwPropertyID == DBPROP_ORDEREDBOOKMARKS)
{
Var CComVariant = pDBProp - > valor;
Si (var.boolVal == VARIANT_TRUE)
{
/ / Establecer la propiedad de marcadores como estos son encadenados
CComVariant bookVar(true);
CDBPropSet set(DBPROPSET_ROWSET);
conjunto.AddProperty (DBPROP_BOOKMARKS, bookVar);
volver SetProperties (1 & conjunto);
}
}
Devuelve S_OK;
}