DISP_PROPERTY_PARAM
更新 : 2007 年 11 月
Get メンバ関数と Set メンバ関数でアクセスするプロパティを定義します。
DISP_PROPERTY_PARAM(theClass, pszExternalName, pfnGet, pfnSet, vtPropType, vtsParams )
パラメータ
theClass
クラス名。pszExternalName
プロパティの外部名。pfnGet
プロパティを取得するために使用するメンバ関数名。pfnSet
プロパティを設定するために使用するメンバ関数名。vtPropType
プロパティの型を指定する値。vtsParams
スペースで区切られた VTS_ バリアント パラメータ型の文字列。パラメータごとに 1 つ指定します。
解説
DISP_PROPERTY_EX マクロとは異なり、このマクロではプロパティのパラメータ リストを指定できます。これは、インデックス付けされたプロパティやパラメータ化されたプロパティを実装する場合に便利です。
使用例
次の Get メンバ関数と Set メンバ関数の宣言を例に取ります。この宣言では、プロパティにアクセスするときに、特定の行と列をユーザーが指定できます。
SHORT GetArray(SHORT row, SHORT column);
void SetArray(SHORT row, SHORT column, SHORT newVal);
これらは、次に示すコントロール ディスパッチ マップの DISP_PROPERTY_PARAM マクロと対応しています。
DISP_PROPERTY_PARAM(CMFCActiveXControlCtrl, "Array", GetArray, SetArray, VT_I2, VTS_I2 VTS_I2 )
別の例として、次の取得関数と設定関数を考えます。
IDispatch* GetItem(SHORT index1, SHORT index2, SHORT index3);
void SetItem(SHORT index1, SHORT index2, SHORT index3, IDispatch* pVal);
これらは、次に示すコントロール ディスパッチ マップの DISP_PROPERTY_PARAM マクロと対応しています。
DISP_PROPERTY_PARAM(CMFCActiveXControlCtrl, "Item", GetItem, SetItem, VT_DISPATCH, VTS_I2 VTS_I2 VTS_I2)
必要条件
ヘッダー : afxdisp.h