Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Традиционно сохранение 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 | Указывает тип данных, который будет использоваться для передачи, а не для конкретного типа данных приложения. |