bindable attribute
The [bindable] attribute indicates that the property supports data binding.
[
interface-attribute-list
]
interface | dispinterface interface-name
{
[bindable[, attribute-list]] returntype function-name(params)
}
-
interface-attribute-list
-
Specifies a list of zero or more IDL attributes that apply to the interface as a whole. When two or more interface attributes are present, they must be separated by commas.
-
interface-name
-
Specifies the name of the interface.
-
attribute-list
-
Specifies zero or more attributes that apply to the function prototype for a property or a method in an interface or dispinterface. The following attributes are valid: [helpstring], [helpcontext], [string], [defaultbind], [displaybind], [immediatebind], [propget], [propput], [propputref], and [vararg]. If vararg is specified, the last parameter must be a safe array of type VARIANT. Separate multiple attributes with commas.
-
returntype
-
Specifies the return type of the function.
-
function-name
-
Specifies the name of the function to which the [bindable] attribute will be applied.
-
params
-
Function parameter list.
By supporting data binding, the [bindable] attribute allows the client to be notified whenever a property has changed value. (If you want the client to be notified of impending changes to a property, use the [requestedit] attribute.)
Because the [bindable] attribute refers to the property as a whole, it must be specified wherever the property is defined. Therefore, you need to specify the attribute on both the property-accessing function and the property-setting function.
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);
}