Приложения
Приложение А. Функции, константы и структуры RDS
А.2. События блока и связанные с ними описания
А.2.4. События общего назначения
А.2.4.5. RDS_BFM_DELAYEDCALLCOMMAND – отложенный вызов модели блока
Поток, в котором вызывается функция модели
Главный поток RDS.
Первый параметр функции модели (int CallMode)
Константа RDS_BFM_DELAYEDCALLCOMMAND.
Третий параметр функции модели (void *ExtParam)
Указатель на структуру RDS_BLOCKDELAYEDCALLDATA, в которой содержатся параметры отложенного вызова.
Возвращаемое функцией модели значение
Не используется, можно возвращать любое значение.
Примечания
Отложенный вызов модели блока может выполняться моделями других блоков или этого же блока из любого потока. Для этого вызывается функция rdsExecuteCommand с параметром RDS_SYSCMD_DELAYEDBLOCKCALL. Сам вызов происходит в главном потоке через некоторое время, когда главный поток освободится от других задач. Поэтому какой-либо обмен данными между блоками при помощи отложенного вызова может быть только асинхронным.
В третьем параметре функции модели передается указатель на структуру RDS_BLOCKDELAYEDCALLDATA:
typedef struct { DWORD Flags; // Флаги команды RDSCSTR TextA; // Текст команды (UTF8) RDSWCSTR TextW; // Текст команды (UTF16) //RDSXCSTR Text; // Текст команды (поле-псевдоним) } RDS_BLOCKDELAYEDCALLDATA; typedef RDS_BLOCKDELAYEDCALLDATA *RDS_PBLOCKDELAYEDCALLDATA;
Поля структуры
- Flags (DWORD)
- Значение одноименного параметра Flags функции rdsExecuteCommand, переданный при постановке команды RDS_SYSCMD_DELAYEDBLOCKCALL в очередь на исполнение.
- TextA (RDSCSTR), TextW (RDSWCSTR), Text (RDSXCSTR)
- Указатель на строку, переданную в параметре Param2 функции rdsExecuteCommand.
См. также