Атрибуты IDL

Традиционно сохранение IDL-файла означает, что вам пришлось:

  • Будьте знакомы со структурой и синтаксисом IDL-файла, чтобы иметь возможность изменять его.

  • Опирайтесь на мастер, который позволит изменить некоторые аспекты IDL-файла.

Теперь можно изменить IDL-файл из файла исходного кода с помощью атрибутов IDL Visual C++. Во многих случаях атрибуты IDL Visual C++ имеют то же имя, что и атрибуты MIDL. Если имя атрибута IDL Visual C++ и атрибута MIDL совпадают, это означает, что добавление атрибута Visual C++ в файл исходного кода приведет к тому, что idl-файл, содержащий атрибут MIDL. Однако атрибут IDL Visual C++ может не предоставлять все функциональные возможности атрибута MIDL.

Если атрибуты COM не используются, атрибуты IDL позволяют определять интерфейсы. При компиляции исходного кода атрибуты используются для определения созданного IDL-файла. При использовании с атрибутами COM в проекте ATL некоторые атрибуты IDL, например coclass, вызывают внедрение кода в проект.

Обратите внимание, что idl_quote позволяет использовать конструкции MIDL, которые не поддерживаются в текущей версии Visual C++. Это и другие атрибуты, такие как importlib и includelib, помогают использовать существующие IDL-файлы в текущем проекте Visual Studio C++.

Атрибут Description
aggregatable Указывает, что элемент управления можно агрегировать другим элементом управления.
appobject Определяет coclass как объект приложения, связанный с полным приложением EXE, и указывает, что функции и свойства сокласса доступны глобально в этой библиотеке типов.
async_uuid Указывает UUID, который направляет компилятор MIDL для определения синхронных и асинхронных версий com-интерфейса.
bindable Указывает, что свойство поддерживает привязку данных.
call_as Позволяет сопоставить неремотируемую функцию с удаленной функцией.
case Используется с атрибутом switch_type в союзе.
coclass Помещает определение класса в IDL-файл в качестве сокласса.
control Указывает, что определяемый пользователем тип является элементом управления.
cpp_quote Выводит указанную строку без символов кавычки в созданный файл заголовка.
defaultbind Указывает одно привязываемое свойство, которое лучше всего представляет объект.
defaultcollelem Используется для оптимизации кода Visual Basic.
defaultvalue Разрешает спецификацию значения по умолчанию для типизированного необязательного параметра.
default Указывает, что настраиваемый или disp-интерфейс, определенный в коклассе, представляет интерфейс программирования по умолчанию.
defaultvtable Определяет интерфейс в качестве интерфейса vtable по умолчанию для элемента управления.
dispinterface Помещает интерфейс в IDL-файл в качестве интерфейса диспетчеризации.
displaybind Указывает свойство, которое должно отображаться пользователю как привязываемое.
dual Помещает интерфейс в IDL-файл как двойной интерфейс.
entry Указывает экспортированную функцию или константу в модуле, определив точку входа в библиотеке DLL.
first_is Указывает индекс первого элемента массива для передачи.
helpcontext Указывает идентификатор контекста, позволяющий пользователю просматривать сведения об этом элементе в файле справки.
helpfile Задает имя файла справки для библиотеки типов.
helpstringcontext Указывает идентификатор раздела справки в файле HLP или CHM.
helpstringdll Указывает имя библиотеки DLL, используемой для поиска строки документа (локализация).
helpstring Определяет строку символов, используемую для описания элемента, к которому оно применяется.
hidden Указывает, что элемент существует, но не должен отображаться в пользовательском браузере.
idl_module Указывает точку входа в библиотеке DLL.
idl_quote Позволяет использовать атрибуты или конструкции IDL, которые не поддерживаются в текущей версии Visual C++.
id Указывает DISPID для функции-члена (свойство или метод, в интерфейсе или dispinterface).
iid_is Указывает iiD интерфейса COM, на который указывает указатель интерфейса.
immediatebind Указывает, что база данных будет немедленно уведомлена обо всех изменениях свойства объекта, привязанного к данным.
importlib Делает типы, которые уже были скомпилированы в другую библиотеку типов, доступными для создаваемой библиотеки типов.
Импорт Указывает другой файл IDL, ODL или заголовок, содержащий определения, на которые нужно ссылаться из основного IDL-файла.
include Указывает один или несколько файлов заголовков, которые необходимо включить в созданный IDL-файл.
includelib Вызывает включение IDL-файла или H-файла в созданный IDL-файл.
в папке Указывает, что параметр должен передаваться из вызывающей процедуры в вызываемую процедуру.
last_is Задает индекс передаваемого элемента последнего массива.
lcid Позволяет передать идентификатор языкового стандарта функции.
length_is Указывает количество передаваемых элементов массива.
licensed Указывает, что кокласс, к которому он применяется, лицензирован, и должен быть создан экземпляр с помощью IClassFactory2.
local Позволяет использовать компилятор MIDL в качестве генератора заголовков при использовании в заголовке интерфейса. При использовании в отдельной функции назначает локальную процедуру, для которой не создаются заглушки.
max_is Задает максимальное значение для допустимого индекса массива.
module Определяет блок библиотеки в IDL-файле.
ms_union Управляет выравниванием представления сетевых данных некапсулированных профсоюзов.
no_injected_text Запрещает компилятору вводить код в результате использования атрибутов.
nonbrowsable Указывает, что член интерфейса не должен отображаться в браузере свойств.
noncreatable Определяет объект, который не может быть создан самостоятельно.
nonextensible Указывает, что IDispatch реализация включает только свойства и методы, перечисленные в описании интерфейса, и не может быть расширена с дополнительными элементами во время выполнения.
object Определяет пользовательский интерфейс; синоним пользовательского атрибута.
odl Определяет интерфейс как интерфейс языка описания объектов (ODL).
oleautomation Указывает, что интерфейс совместим с службой автоматизации.
необязательный параметр Указывает необязательный параметр для функции-члена.
out Определяет параметры-указатели, которые возвращаются из вызываемой процедуры в вызывающую (от сервера к клиенту).
pointer_default Задает атрибут указателя по умолчанию для всех указателей, кроме указателей верхнего уровня, которые отображаются в списках параметров.
pragma Выводит указанную строку без символов кавычки в созданный IDL-файл.
progid Указывает progID для COM-объекта.
propget Указывает функцию доступа к свойствам (get).
propputref Задает функцию параметра свойства, которая использует ссылку вместо значения.
propput Задает функцию настройки свойства.
ptr Указывает указатель как полный указатель.
public Гарантирует, что типдифактируется в библиотеку типов, даже если он не ссылается из IDL-файла.
range Задает диапазон допустимых значений для аргументов или полей, значения которых задаются во время выполнения.
readonly Запрещает назначение переменной.
ref; Определяет ссылочный указатель.
requestedit Указывает, что свойство поддерживает уведомление OnRequestEdit.
restricted Указывает, что библиотеку или член модуля, интерфейса или dispinterface нельзя вызывать произвольно.
retval Указывает параметр, который получает возвращаемое значение элемента.
size_is Задает размер памяти, выделенной для указателей размера, указателей размера на указатели размера, а также одномерные массивы.
source Указывает, что член класса, свойства или метода является источником событий.
string Указывает, что одномерный charwchar_tbyteмассив или эквивалентный массив или указатель на такой массив должен рассматриваться как строка.
switch_is Указывает выражение или идентификатор, действующий в качестве дискриминанта профсоюза, который выбирает члена профсоюза.
switch_type Определяет тип переменной, используемой в качестве дискриминанта объединения.
transmit_as Указывает компилятору связать представленный тип, с которыми управляют клиентские и серверные приложения, с передаваемым типом.
uidefault Указывает, что элемент сведений о типе является элементом по умолчанию для отображения в пользовательском интерфейсе.
unique Указывает уникальный указатель.
usesgetlasterror Сообщает вызывающему объекту, что при вызове этой функции возникает ошибка, вызывающий объект может вызвать GetLastError для получения кода ошибки.
uuid Указывает уникальный идентификатор класса или интерфейса.
v1_enum Указывает, что указанный перечислимый тип передается как 32-разрядная сущность, а не 16-разрядная по умолчанию.
vararg Указывает, что функция принимает переменное число аргументов.
vi_progid Указывает версию независимой от версии формы ProgID.
wire_marshal Указывает тип данных, который будет использоваться для передачи, а не для конкретного типа данных приложения.

См. также

Список атрибутов по группам