Приложения
Приложение А. Функции, константы и структуры RDS
А.4. Структуры RDS
А.4.6. RDS_DYNVARLINK – подписка на динамическую переменную
Структура RDS_DYNVARLINK создается во внутренней памяти RDS при подписке блока на динамическую переменную (см. §2.6 руководства программиста) и используется моделью блока для обращения к такой переменной. Модели не требуется самостоятельно создавать эти структуры – она всегда работает с указателями на них, возвращенными сервисными функциями подписки. Структура уничтожается RDS автоматически при прекращении подписки на переменную или удалении подписавшегося блока.
typedef struct { LPVOID Data; // Адрес области данных переменной // Имя переменной RDSCSTR VarNameA; // UTF8 RDSWCSTR VarNameW; // UTF16 //RDSXCSTR VarName; // поле-псевдоним // Тип переменной RDSCSTR VarTypeA; // UTF8 RDSWCSTR VarTypeW; // UTF16 //RDSXCSTR VarType; // поле-псевдоним RDS_BHANDLE Provider; // Блок-владелец переменной LPVOID UID; // Служебный идентификатор переменной // (служебное поле, изменять нельзя) RDS_VHANDLE Var; // Идентификатор переменной для // использования в сервисных функциях } RDS_DYNVARLINK; typedef RDS_DYNVARLINK *RDS_PDYNVARLINK;
Поля структуры
- Data (LPVOID)
- Указатель на область данных переменной. Структура этой области данных в точности соответствует данным статической переменной такого же типа в дереве переменных блока (см. §2.5 руководства программиста). Если динамическая переменная не найдена, в этом поле будет находиться значение NULL.
- VarNameA (RDSCSTR), VarNameW (RDSWCSTR), VarName (RDSXCSTR)
- Указатель на строку с именем динамической переменной. Строка находится во внутренней памяти RDS, ее нельзя изменять.
- VarTypeA (RDSCSTR), VarTypeW (RDSWCSTR), VarType (RDSXCSTR)
- Указатель на строку типа динамической переменной (она устроена так же, как и строка типа статических переменных). Строка находится во внутренней памяти RDS, ее нельзя изменять.
- Provider (RDS_BHANDLE)
- Идентификатор блока, в котором находится данная динамическая переменная.
- UID (LPVOID)
- Служебный идентификатор данной переменной, используемый внутри RDS. Значение этого поля нельзя изменять.
- Var (RDS_VHANDLE)
- Идентификатор переменной, используемый в некоторых сервисных функциях для работы с переменными.
См. также
rdsSubscribeToDynamicVar, rdsUnsubscribeFromDynamicVar, rdsCreateAndSubscribeDV.