Атрибут typedef
IDL typedef ключевое слово допускает объявления typedef, которые очень похожи на объявления typedef языка C.
/* IDL file typedef syntax */
typedef [[ [ idl-type-attribute-list ] ]] type-specifier declarator-list;
/* ACF typedef syntax */
typedef [ acf-type-attribute-list ] typename;
-
idl-type-attribute-list
-
Указывает один или несколько атрибутов, применяемых к типу. Допустимые атрибуты типа в IDL-файле включают [handle], [switch_type], [transmit_as]; атрибут указателя [ссылка], [уникальный], или [ptr]; и атрибуты использования [context_handle], [строка] и [игнорировать]. Разделяйте несколько атрибутов запятыми.
-
описатель типа
-
Задает базовый тип, структуру, объединение, тип перечисления или идентификатор типа. Необязательная спецификация хранилища может предшествовать спецификатору типа. Константный ключевое слово может предшествовать описатель типа.
-
declarator-list
-
Указывает стандартные деклараторы MIDL, такие как идентификаторы, деклараторы указателей и деклараторы массива. Дополнительные сведения см. в статье Атрибуты массива и Sized-Pointer, массивы и указатели. Список деклараторов состоит из одного или нескольких деклараторов, разделенных запятыми.
-
acf-type-attribute-list
-
Указывает один или несколько атрибутов, применяемых к типу. Допустимые атрибуты типа в ACF включают [выделение], [кодирование] и [декодирование].
-
Typename
-
Указывает тип, определенный в IDL-файле.
Объявление определения типа IDL дополнено , чтобы позволить связать атрибуты типа с определенными типами. Допустимые атрибуты типа: [handle], [switch_type], [transmit_as]; атрибут указателя [ссылка], [уникальный], или [ptr]; и атрибуты использования [context_handle], [строка] и [игнорировать].
Typedef ключевое слово в ACF применяет атрибуты к типам, определенным в соответствующем IDL-файле. Например, атрибут типа выделения позволяет настраивать выделение и освобождение памяти как приложением, так и заглушками.
Оператор typedef ACF отображается как часть тела ACF. Обратите внимание, что синтаксис определения типа ACF отличается от синтаксиса определения типа IDL и синтаксиса typedef языка C. В ACF нельзя вводить новые типы.