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

Описания RDS

Приложения

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

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

А.5.6. Операции с блоками и связями

А.5.6.32. rdsGetNextBlock – следующий блок в подсистеме

# Приложения

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

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

#### А.5.6. Операции с блоками и связями

##### А.5.6.32. rdsGetNextBlock – следующий блок в подсистеме

Функция rdsGetNextBlock возвращает идентификатор блока, следующего за указанным в той же подсистеме.

      RDS_BHANDLE RDSCALL rdsGetNextBlock(
        RDS_BHANDLE PrevBlock,          // Предыдущий блок
        int Type,                       // Маска типов (RDS_BT*)
        RDS_PBLOCKDESCRIPTION pDescr    // Заполняемое описание блока
      );

Тип указателя на эту функцию

RDS_BhBhIBd

Параметры

PrevBlock(RDS_BHANDLE)
  Идентификатор предыдущего блока (функция вернет следующий за ним).
Type(int)
  Маска типов блоков, среди которых ищется блок – стандартные константы типов блоков RDS_BT*, объединенные битовым ИЛИ. Если нужно найти следующий блок любого типа, в этом параметре можно передать 0. Тип блока, переданного в параметре PrevBlock, не обязательно должен попадать в маску Type – функция в любом случае вернет блок указанного типа, следующий за PrevBlock.
pDescr(RDS_PBLOCKDESCRIPTION)
  Указатель на заполняемую функцией структуру описания найденного блока RDS_BLOCKDESCRIPTION. Если вызывающей программе не нужно это описание, в этом параметре можно передать NULL.

Возвращаемое значение

Идентификатор найденного блока (RDS_BHANDLE) или NULL, если в подсистеме, в которой находится блок PrevBlock, больше нет блоков с указанными в Type типами.

Примечания

Эта функция ищет в родительской подсистеме блока PrevBlock следующий блок, принадлежащий одному из типов, указанных флагами в параметре Type. Порядок следования блоков в подсистеме определяется внутренней логикой RDS и не может быть изменен программистом. Чаще всего эта функция используется вместе с функцией rdsGetFirstBlock для перебора всех блоков заданной подсистемы. Например, пару этих функций можно вызвать в цикле for:

      // Перебор всех блоков подсистемы sys
      for(RDS_BHANDLE blk=rdsGetFirstBlock(sys,0,NULL);
          blk!=NULL;
          blk=rdsGetNextBlock(blk,0,NULL))
        {
          // Какие-то действия с блоком blk
        }

См. также

rdsGetFirstBlock, rdsEnumBlocks, RDS_BLOCKDESCRIPTION.