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

Описания RDS

Приложения

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

А.3. События модуля автокомпиляции и связанные с ними структуры

А.3.4. События модуля автокомпиляции

А.3.4.21. RDS_COMPM_STRUCTCHANGE – изменение структуры

# Приложения

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

См. также

RDS_COMPM_GETOPTIONS.