Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.13. Вызов функций блоков
А.5.13.5. rdsBroadcastFunctionCalls – прямой вызов функции всех блоков подсистемы (устаревшая)
Функция rdsBroadcastFunctionCalls вызывает одну и ту же функцию у всех блоков указанной подсистемы (с блоками вложенных подсистем или без них). Управление возвращается модели вызвавшего блока только после вызова всех функций. Сейчас вместо rdsBroadcastFunctionCalls чаще используется rdsBroadcastFunctionCallsEx, обладающая более широкими возможностями.
void RDSCALL rdsBroadcastFunctionCalls( RDS_BHANDLE Parent, // Подсистема с вызываемыми блоками int FuncId, // Идентификатор функции LPVOID pParams, // Указатель на область параметров функции BOOL CallSubsystems // Вызывать блоки вложенных подсистем );
Тип указателя на эту функцию
RDS_VBhIpVB
Параметры
- Parent (RDS_BHANDLE)
- Идентификатор подсистемы, у блоков которой будет вызываться функция (модели этих блоков будут реагировать на событие RDS_BFM_FUNCTIONCALL).
- FuncId (int)
- Целый идентификатор вызываемой функции, полученный при ее регистрации вызовом rdsRegisterFunction.
- pParams (LPVOID)
- Указатель на область параметров функции (этот указатель передается модели вызванного блока). Может равняться NULL.
- CallSubsystems (BOOL)
- TRUE, если функция FuncId должна быть вызвана у всех блоков всех внутренних подсистем подсистемы Parent на всех уровнях иерархии. FALSE, если функцию FincId нужно вызвать только у блоков, непосредственно находящихся в подсистеме Parent (разумеется, включая подсистемы непосредственно вложенные в нее, но не включая содержимое этих подсистем).
Примечания
Вызов этой функции приводит к последовательному (в произвольном порядке) вызову всех моделей блоков в подсистеме Parent для реакции на событие RDS_BFM_FUNCTIONCALL. Поля структуры данных функции RDS_FUNCTIONCALLDATA, указатель на которую передается в модель блока в параметре ExtParam, при этом будут заполнены следующим образом:
| Поле | Значение |
|---|---|
| int Function | значение параметра FuncId |
| LPVOID Data | значение параметра pParams |
| RDS_BHANDLE Caller | идентификатор блока, из модели которого вызвана rdsBroadcastFunctionCalls |
| BOOL Broadcast | TRUE |
| int BroadcastCnt | исходно – 0, увеличивается на 1 при вызове каждого следующего блока |
| BOOL Stop | FALSE |
| BOOL Delayed | FALSE |
| DWORD DataBufSize | 0 |
Вызов функций всех блоков подсистемы рассматривается в §2.13.3 руководства программиста.
См. также
RDS_BFM_FUNCTIONCALL, RDS_FUNCTIONCALLDATA, rdsBroadcastFunctionCallsEx, rdsRegisterFunction.