import - атрибут
Директива import указывает другой файл IDL, ODL или файл заголовка, содержащий определения, на которые вы хотите ссылаться из main IDL-файла.
import "filename" [[ , ... ]] ;
-
filename
-
Указывает имя импортируемого файла заголовка, IDL или ODL.
С помощью директивы import все инструкции IDL в импортированном файле, такие как typedefs, объявления констант и определения интерфейса, становятся доступными для импортируемого объекта . IDL-файл.
Импортированный файл обрабатывается отдельно (это означает, что препроцессор CPP вызывается независимо) от импортируемого IDL-файла. Таким образом директивы предварительного процессора, такие как #define, не переносятся из импортированного файла заголовка или IDL в импортируемый IDL-файл.
Как и макрос препроцессора языка C , #include, директива import указывает компилятору включить типы данных, определенные в импортированных IDL-файлах. В отличие от директивы #include , директива import игнорирует прототипы процедур, так как заглушки не создаются для чего-либо в импортированном файле.
Конкретные сведения об использовании импорта для включения файлов заголовков в IDL-файл см. в разделе Импорт системных файлов заголовков.
Заголовок языка C (. H) файл, созданный для интерфейса, не содержит напрямую импортированные типы, а создает директиву #include для файла заголовка, соответствующего импортированному интерфейсу. Например, при импорте BASE. IDL в ПРОИЗВОДНОЕ. IDL, созданный файл заголовка DERIVED. H будет содержать директиву #include BASE.H.
Применяются следующие правила.
- Ключевое слово импорта является необязательным и может отображаться в IDL-файле ноль или более раз.
- Каждый ключевое слово импорта может быть связан с несколькими именами файлов.
- Разделяйте имена нескольких файлов запятыми.
- Имя файла необходимо заключить в кавычки и завершить инструкцию импорта точкой с запятой (;).
- Интерфейс без атрибутов можно импортировать в другой IDL-файл. Однако интерфейс должен содержать только типы данных; он не может содержать никаких процедур. Если в импортированном интерфейсе содержится хотя бы одна процедура, необходимо указать локальный атрибут или атрибут UUID .
- Функция импорта является идемпотентной, то есть импорт интерфейса более одного раза не оказывает дополнительного эффекта.
Примечание
Поведение директивы import не зависит от параметров режима компилятора MIDL /ms_ext (по умолчанию), /osf и /app_config. Однако режим компилятора (/osf или /ms_ext) может влиять на оформление атрибута указателя для импортированных типов. Дополнительные сведения см. в разделе Наследование типа атрибута указателя.
import "myoldodl.odl";
import "unknwn.idl";
import "part1.idl", "part2.idl", "part3.idl";