bindable - атрибут
Атрибут [bindable] указывает, что свойство поддерживает привязку данных.
[
interface-attribute-list
]
interface | dispinterface interface-name
{
[bindable[, attribute-list]] returntype function-name(params)
}
-
interface-attribute-list
-
Задает список из нуля или нескольких атрибутов IDL, которые применяются к интерфейсу в целом. При наличии двух или более атрибутов интерфейса они должны быть разделены запятыми.
-
interface-name
-
Указывает имя интерфейса.
-
список атрибутов
-
Указывает ноль или несколько атрибутов, применяемых к прототипу функции для свойства или метода в интерфейсе или 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);
}