DISP_PROPERTY_NOTIFY ( [クラス], pszExternalName, pfnGet, pfnSet, vtPropType, 「vtsParams )
# を含める lt;afxdisp.h >
パラメーター
[クラス]
クラスの名前。
pszExternalName
プロパティの外部名。
pfnGet
プロパティを取得に使用するメンバー関数の名前。
pfnSet
プロパティを設定に使用するメンバー関数の名前。
vtPropType
プロパティの型を指定する値。
「vtsParams
スペースで区切ったvts _バリアント型パラメーターの型、パラメーターごとに 1 つの文字列。
解説
このマクロでは、別の取得し、設定メンバー関数にアクセスするプロパティを定義します。DISP_PROPERTY_EXマクロとは異なり、このマクロのパラメーター リストのプロパティを指定することができます。これは、インデックスまたはパラメーター化されたプロパティを実装するために便利です。
たとえば、次の get 宣言を検討し、メンバー関数は、特定の行と列のプロパティにアクセスするときを要求するユーザーを許可する設定:
afx_msg 短い GetArray (短い行、短柱);afx_msg 短い SetArray (短い行、短柱、短い nNewValue)
これらは、次のDISP_PROPERTY_PARAMマクロ コントロールのディスパッチ マップに対応しています:
DISP_PROPERTY_PARAM (CMyCtrl、SetArray、VT-I2 は、VTS_I2 VTS_I2 の「配列」GetArray、)
別の例としては、次を取得関数と設定関数を検討します。:
LPDISPATCH CMyObject::GetItem(short index1, short index2, short index3);CMyObject::SetItem (短い index1、短い index2、短い向け、LPDISPATCH newValue) が無効します。
これらは、次のDISP_PROPERTY_PARAMマクロ コントロールのディスパッチ マップに対応しています:
DISP_PROPERTY_PARAM (いる CMyObject、「アイテム」GetItem、SetItem VT_DISPATCH、特価;VTS_I2 VTS_I2 VTS_I2)(&N)
参照特価;ディスパッチ マップ、 DISP_PROPERTY _EX(&N)