Partilhar via


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

Consulte também

Referência

Classe CUtlProps