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

Описания RDS

Приложения

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

А.5. Сервисные функции и макросы RDS

А.5.2. Управление работой RDS и функции общего назначения

А.5.2.3. Макрос RDS_INITSERVSIZE – инициализация поля размера в стандартных структурах RDS

# Приложения

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

### А.5. Сервисные функции и макросы RDS

#### А.5.2. Управление работой RDS и функции общего назначения

##### А.5.2.3. Макрос RDS_INITSERVSIZE – инициализация поля размера в стандартных структурах RDS

Макрос RDS_INITSERVSIZE присваивает полю servSize переданной в его параметре структуры размер этой структуры в байтах.

      RDS_INITSERVSIZE(
        structvar  // Переменная-структура
      )

Определение

      #define RDS_INITSERVSIZE(structvar) \
                structvar.servSize=sizeof(structvar)

Параметр

structvar(структура)
  Переменная, представляющая собой структуру одного из стандартных типов RDS, в которой есть поле servSize.

Примечания

Присваивать полю servSize размер содержащей его структуры необходимо перед вызовом большинства сервисных функций, работающих со стандартными структурами RDS (см. приложение А.4). Сервисные функции, в которые передаются указатели на эти структуры, прежде всего сравнивают беззнаковое целое число (DWORD), содержащееся в самом первом поле структуры, с ожидаемым размером структуры данного типа. Если это число окажется меньше ожидаемого размера, функция либо сообщит вызвавшей программе об ошибке, либо будет работать только с полями структуры, укладывающимися в переданный размер.

Пример

      // Структура описания блока
      RDS_BLOCKDESCRIPTION descr;
      // Присвоение размера структуры первому полю
      RDS_INITSERVSIZE(descr);
      // Получение описания блока
      rdsGetBlockDescription(Block,&descr);