Атрибуты 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 | Указывает, что одномерный char wchar_t byte массив или эквивалентный массив или указатель на такой массив должен рассматриваться как строка. |
switch_is | Указывает выражение или идентификатор, действующий в качестве дискриминанта профсоюза, который выбирает члена профсоюза. |
switch_type | Определяет тип переменной, используемой в качестве дискриминанта объединения. |
transmit_as | Указывает компилятору связать представленный тип, с которыми управляют клиентские и серверные приложения, с передаваемым типом. |
uidefault | Указывает, что элемент сведений о типе является элементом по умолчанию для отображения в пользовательском интерфейсе. |
unique | Указывает уникальный указатель. |
usesgetlasterror | Сообщает вызывающему объекту, что при вызове этой функции возникает ошибка, вызывающий объект может вызвать GetLastError для получения кода ошибки. |
uuid | Указывает уникальный идентификатор класса или интерфейса. |
v1_enum | Указывает, что указанный перечислимый тип передается как 32-разрядная сущность, а не 16-разрядная по умолчанию. |
vararg | Указывает, что функция принимает переменное число аргументов. |
vi_progid | Указывает версию независимой от версии формы ProgID. |
wire_marshal | Указывает тип данных, который будет использоваться для передачи, а не для конкретного типа данных приложения. |