Навигация:
<< >> Оглавление Указатель

Приложения

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

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

А.3.2. RDS_COMPMODULEDATA – структура данных модуля

Структура данных модуля автокомпиляции RDS_COMPMODULEDATA содержит основные параметры этого модуля, которые нужны его функции для реакции на различные события. Эта структура создается RDS перед первым вызовом функции модуля автокомпиляции и хранится в памяти все время его существования, то есть до тех пор, пока последняя модель, обслуживаемая этим модулем, не будет отключена от последнего связанного с ней блока схемы. Общая структура данных, используемых для автоматической компиляции моделей, подробно рассмотрена в главе 3 руководства программиста.

  typedef struct {
     Module;   // Идентификатор модуля
     ModuleData;       // Адрес личной области данных модуля
     DllFullPathA;    // Полный путь к DLL модуля (UTF8)
     DllFullPathW;   // Полный путь к DLL модуля (UTF16)
    // DllFullPath;  // Полный путь к DLL модуля ()
     DllFuncNameA;    // Имя функции DLL модуля (UTF8)
     DllFuncNameW;   // Имя функции DLL модуля (UTF16)
    // DllFuncName;  // Имя функции DLL модуля ()
     NModels;        // Число моделей, связанных в данный
                             // момент с этим модулем
     DataFileA;       // Предлагаемое имя файла настроек (UTF8)
     DataFileW;      // Предлагаемое имя файла настроек (UTF16)
    // DataFile;     // Предлагаемое имя файла настроек ()
     ModelFormatA;    // Уникальный идентификатор формата модели (UTF8)
     ModelFormatW;   // Уникальный идентификатор формата модели (UTF16)
    // ModelFormat;  // Уникальный идентификатор формата модели ()
  } RDS_COMPMODULEDATA;
  typedef RDS_COMPMODULEDATA *RDS_PCOMPMODULEDATA;

Поля структуры

Module (RDS_COMPHANDLE)
Уникальный идентификатор данного модуля. Тип RDS_COMPHANDLE используется в RDS для указания на конкретный модуль автокомпиляции.
ModuleData (LPVOID)
Указатель на личную область данных модуля. Перед самым первым вызовом функции данного модуля RDS записывает в это поле значение NULL и больше к нему не обращается. Если модулю требуется отводить память под свои нужды, он может записать указатель на отведенную область памяти в это поле. В этом случае освободить отведенную область тоже должна будет функция модуля – обычно это делается в реакции на событие RDS_COMPM_CLEANUP.
DllFullPathA (RDSCSTR), DllFullPathW (RDSWCSTR), DllFullPath (RDSXCSTR)
Полный путь к DLL, в которой находится функция данного модуля автокомпиляции. Может использоваться для считывания каких-либо параметров, хранящихся в файлах в одной папке с DLL модуля. Функция модуля не должна изменять эту строку.
DllFuncNameA (), DllFuncNameW (), DllFuncName ()
Экспортированное имя функции данного модуля автокомпиляции. Функция модуля не должна изменять эту строку.
NModels (RDSINT32)
Общее число моделей, подключенных в данный момент к этому модулю автокомпиляции. Вместе с сервисной функцией rdscompGetModelData может использоваться для организации цикла по всем моделям, обслуживаемым данным модулем. Функция модуля не должна изменять это число.
DataFileA (), DataFileW (), DataFile ()
Автоматически сформированное RDS имя файла для хранения настроек модуля. Это имя гарантированно не будет совпадать с другими используемыми RDS именами файлов.
ModelFormatA (), ModelFormatW (), ModelFormat ()
Уникальная строка, описывающая формат текста моделей, поддерживаемых модулем. Эта строка считывается из файла описания модуля, с помощью которого модуль регистрируется в RDS.

См. также

RDS_COMPM_INIT, RDS_COMPM_CLEANUP, rdscompGetModelData.


<< >> Оглавление Указатель