bindable 特性
[bindable] 属性指示 属性支持数据绑定。
[
interface-attribute-list
]
interface | dispinterface interface-name
{
[bindable[, attribute-list]] returntype function-name(params)
}
-
interface-attribute-list
-
指定应用于接口的零个或多个 IDL 属性作为一个整体的列表。 如果存在两个或多个接口属性,则必须用逗号分隔它们。
-
interface-name
-
指定接口的名称。
-
attribute-list
-
指定零个或多个属性,这些特性应用于 接口 或 dispinterface 中的属性或方法的函数原型。 以下属性有效: [helpstring]、 [helpcontext]、 [string]、 [defaultbind]、 [displaybind]、 [immediatebind]、 [propget]、 [propput]、 [propputref]和 [vararg]。 如果指定 vararg ,则最后一个参数必须是 VARIANT 类型的安全数组。 用逗号分隔多个属性。
-
returntype
-
指定函数的返回类型。
-
function-name
-
指定要应用 [bindable] 属性的函数的名称。
-
params
-
函数参数列表。
通过支持数据绑定, [bindable] 属性允许客户端在属性更改值时收到通知。 (如果希望客户端收到即将发生的属性更改的通知,请使用 [requestedit] 属性.)
由于 [bindable] 属性作为一个整体引用属性,因此无论定义属性,都必须指定该属性。 因此,需要在属性访问函数和属性设置函数上指定 属性。
FUNCFLAG_FBINDABLE、VARFLAG_FBINDABLE
[
uuid(1e196b20-1f3c-1069-996b-00dd010fe676)
]
dispinterface MyObject
{
properties:
methods:
[id(1), propget, bindable, defaultbind, displaybind] long x();
[id(1), propput, bindable,
defaultbind, displaybind] HRESULT x(long rhs);
}