Freigeben über


CUtlProps::OnPropertyChanged

Wird aufgerufen, nachdem dem Festlegen einer Eigenschaft, um zu behandeln, verketteten Eigenschaften.

virtual HRESULT OnPropertyChanged( 
   ULONG /* iCurSet */, 
   DBPROP* pDBProp  
);

Parameter

  • iCurSet
    Der Index im Eigenschaftensatzarray; null wenn nur einen Eigenschaftensatz gibt.

  • pDBProp
    Die Eigenschaften-ID und der neue Wert in DBPROP eine Struktur.

Rückgabewert

Standard- HRESULT. Der Standardrückgabewert ist S_OK.

Hinweise

Wenn Sie Eigenschaften verkettete behandeln, wie Lesezeichen oder aktualisiert, deren Werte aus einem anderen Eigenschaft abhängig sind, sollten Sie diese Funktion beibehalten.

Beispiel

In dieser Funktion ruft der Benutzer die vom DBPROP*-Parameter mehrmals ab. Jetzt ist es möglich, die ID für eine Eigenschaft zu vergleichen, um zu verketten. Wenn die Eigenschaft gefunden wird, wird SetProperties mit der Eigenschaft aufgerufen, die jetzt in Verbindung mit der anderen Eigenschaft festgelegt wird. In diesem Fall wird DBPROP_IRowsetLocate, DBPROP_LITERALBOOKMARKS oder DBPROP_ORDEREDBOOKMARKS-Eigenschaft abruft, kann der DBPROP_BOOKMARKS-Eigenschaft festlegen.

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;
}

Anforderungen

Header: atldb.h

Siehe auch

Referenz

CUtlProps-Klasse