Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.4. Структуры RDS

А.4.6. RDS_DYNVARLINK – подписка на динамическую переменную

# Приложения

## Приложение А. Функции, константы и структуры 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.