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