次の方法で共有


CUtlProps::OnPropertyChanged

ハンドルへのプロパティを設定した後に呼び出されますプロパティを連結します。

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

パラメーター

  • iCurSet
    プロパティ セットの配列へのインデックス; プロパティが 1 つだけある場合。

  • pDBProp
    DBPROP の構造のプロパティ ID と新しい値。

戻り値

標準の HRESULT を返します。既定の戻り値は S_OKです。

解説

チェーン プロパティを扱う場合は、ブックマークやなどのユーザーの値が別のプロパティの値に依存するか、この関数をオーバーライドして、に更新します。

使用例

この関数では、ユーザーが DBPROP* パラメーターからプロパティ ID を取得します。現在、チェーンするために、プロパティに対して ID を比較することができます。プロパティがの場合、 SetProperties は、他のプロパティとともに設定されたプロパティと呼ばれます。この場合、 1 は DBPROP_IRowsetLocate、 DBPROP_LITERALBOOKMARKS、または DBPROP_ORDEREDBOOKMARKS のプロパティを取得する場合、 1 は 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;
}

必要条件

Header: atldb.h

参照

関連項目

CUtlProps クラス