Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.14. Общие функции работы с переменными блока
А.5.14.5. rdsCopyVarGeneral – копировать значение переменной в другую переменную
Функция rdsCopyVarGeneral копирует значение одной переменной в другую.
BOOL RDSCALL rdsCopyVarGeneral( RDS_VHANDLE DestVar, // Переменная-получатель LPVOID DestBaseAddr, // Базовый адрес получателя RDS_VHANDLE SrcVar, // Переменная-источник LPVOID SrcBaseAddr // Базовый адрес источника );
Тип указателя на эту функцию
RDS_BVhpVVhpV
Параметры
- DestVar (RDS_VHANDLE)
- Идентификатор переменной-получателя данных.
- DestBaseAddr (LPVOID)
- Базовый адрес переменной-получателя данных в дереве, то есть указатель на начало области, которую эта переменная занимает в дереве переменных блока (см. §2.5.1 руководства программиста).
- SrcVar (RDS_VHANDLE)
- Идентификатор переменной-источника данных.
- SrcBaseAddr (LPVOID)
- Базовый адрес переменной-источника данных в дереве переменных блока.
Возвращаемое значение
TRUE – значение переменной скопировано успешно, FALSE – произошла ошибка (недопустимые параметры функции).
Примечания
Эта функция позволяет скопировать значение одной переменной в другую, если для каждой из переменных известен уникальный идентификатор типа RDS_VHANDLE и базовый адрес этой переменной. Идентификатор статической переменной блока можно получить вызовом rdsGetBlockVar или rdsFindBlockVar, идентификатор динамической хранится в структуре RDS_DYNVARLINK, создаваемой RDS при подписке на эту динамическую переменную.
Чаще всего модели блоков работают с переменными непосредственно по адресам, и в использовании функции rdsCopyVarGeneral нет необходимости. Она может пригодиться в тех случаях, когда блок имеет изменяемую структуру переменных (например, настраиваемую пользователем) и при этом выполняет над своими переменными однотипные действия (например, копирует значение входа на один из выходов в зависимости от какого-либо условия).
См. также
rdsCopyVarArray, rdsCopyRuntimeType, rdsGetBlockVar, rdsFindBlockVar, RDS_DYNVARLINK, rdsSubscribeToDynamicVar, rdsCreateAndSubscribeDV, rdsGetBlockVarBase.