Приложения
Приложение А. Функции, константы и структуры RDS
А.3. События модуля автокомпиляции и связанные с ними структуры
А.3.4. События модуля автокомпиляции
А.3.4.21. RDS_COMPM_STRUCTCHANGE – изменение структуры
Первый параметр функции модуля (int CallMode)
Константа RDS_COMPM_STRUCTCHANGE.
Третий параметр функции модуля (void *ExtParam)
Указатель на структуру RDS_COMPSTRUCTCHGDATA, содержащую имя изменившейся структуры.
Возвращаемое функцией модуля значение
Не используется, можно возвращать любое значение.
Примечания
Событие RDS_COMPM_STRUCTCHANGE возникает при любом изменении типа одной из зарегистрированных в RDS структур, используемых в составе переменных блоков, а также при переименовании или удалении такой структуры. Реакция на это событие вызывается независимо от того, вернула ли функция модуля флаг RDS_COMPFLAG_CANCHANGESTRUCT в реакции на событие RDS_COMPM_GETOPTIONS. Обычно эта реакция используется для корректировки модели блока, если она использует измененную структуру, или для вывода сообщения пользователю о том, что модель стала неработоспособной и о действиях, которые он должен предпринять для того, чтобы эту модель можно было снова использовать.
В параметре ExtParam при реакции на это событие передается указатель на структуру RDS_COMPSTRUCTCHGDATA:
typedef struct { RDSCSTR OldStructTypeA; // Имя типа структуры до изменения (UTF8) RDSWCSTR OldStructTypeW; // Имя типа структуры до изменения (UTF16) //RDSXCSTR OldStructType; // Имя типа структуры до изменения (поле-псевдоним) RDSCSTR NewStructTypeA; // Имя типа структуры после изменения (UTF8) RDSWCSTR NewStructTypeW; // Имя типа структуры после изменения (UTF16) //RDSXCSTR NewStructType; // Имя типа структуры после изменения (поле-псевдоним) BOOL Renamed; // Структура переименована } RDS_COMPSTRUCTCHGDATA; typedef RDS_COMPSTRUCTCHGDATA *RDS_PCOMPSTRUCTCHGDATA;
Поля структуры
- OldStructTypeA (RDSCSTR), OldStructTypeW (RDSWCSTR), OldStructType (RDSXCSTR)
- Указатель на строку с именем типа структуры до редактирования. Под этим именем данная структура была известна модулю до ее изменения. Строка находится во внутренней памяти RDS, функция модуля не должна изменять ее.
- NewStructTypeA (RDSCSTR), NewStructTypeW (RDSWCSTR), NewStructType (RDSXCSTR)
- Указатель на строку с именем типа структуры после редактирования. Строка находится во внутренней памяти RDS, функция модуля не должна изменять ее.
- Renamed (BOOL)
- TRUE, если структура была переименована (то есть если OldStructType не совпадает с NewStructType), FALSE в противном случае.
См. также