Атрибуты IDLIDL Attributes

Обычно поддержание IDL-файла означает, что вам пришлось:Traditionally, maintaining an .idl file meant that you had to:

  • Чтобы иметь возможность изменить структуру и синтаксис IDL-файла, необходимо ознакомиться с его структурой.Be familiar with the structure and syntax of an .idl file to be able to modify it.

  • Используйте мастер, который позволит изменить некоторые аспекты IDL-файла.Rely on a wizard, which would let you modify some aspects of the .idl file.

Теперь можно изменить IDL-файл в файле исходного кода с помощью Visual C++ атрибутов IDL.Now, you can modify the .idl file from within a source code file using Visual C++ IDL attributes. Во многих случаях Visual C++ атрибуты IDL имеют те же имена, что и атрибуты MIDL.In many cases, Visual C++ IDL attributes have the same name as MIDL attributes. Если имя атрибута IDL Visual C++ и атрибут MIDL одинаковы, это означает, что при размещении атрибута Visual C++ в файле исходного кода будет создан IDL-файл, содержащий его атрибут тезка MIDL.When the name of a Visual C++ IDL attribute and a MIDL attribute are the same, it means that putting the Visual C++ attribute in your source code file will result in an .idl file that contains its namesake MIDL attribute. Однако атрибут Visual C++ IDL может не предоставлять все функциональные возможности атрибута MIDL.However, a Visual C++ IDL attribute may not provide all the functionality of a MIDL attribute.

Если не используется с атрибутами com, атрибуты IDL позволяют определять интерфейсы.When not used with COM attributes, IDL attributes let you define interfaces. При компиляции исходного кода атрибуты используются для определения созданного idl-файла.When the source code is compiled, the attributes are used to define the generated .idl file. При использовании с атрибутами COM в проекте ATL некоторые атрибуты IDL, такие как coclass , приводят к внедрению кода в проект.When used with COM attributes in an ATL project, some IDL attributes, such as coclass, cause code to be injected into the project.

Обратите внимание, что idl_quote позволяет использовать конструкции MIDL, которые не поддерживаются в текущей версии Visual C++.Note that idl_quote lets you use MIDL constructs that are not supported in the current version of Visual C++. Этот и другие атрибуты, такие как importlib и инклуделиб , помогают использовать существующие IDL-файлы в текущем проекте Visual Studio C++.This and other attributes such as importlib and includelib help you to use existing .idl files in your current Visual Studio C++ project.

АтрибутAttribute ОписаниеDescription
aggregatableaggregatable Указывает, что элемент управления может быть агрегирован другим элементом управления.Indicates that a control can be aggregated by another control.
appobjectappobject Идентифицирует компонентный класс как объект приложения, связанный с полноценным приложением EXE, и указывает, что функции и свойства компонентного класса глобально доступны в этой библиотеке типов.Identifies the coclass as an application object, which is associated with a full EXE application, and indicates that the functions and properties of the coclass are globally available in this type library.
async_uuidasync_uuid Указывает UUID, который направляет компилятор MIDL для определения синхронных и асинхронных версий COM-интерфейса.Specifies the UUID that directs the MIDL compiler to define both synchronous and asynchronous versions of a COM interface.
bindablebindable Указывает, что свойство поддерживает привязку данных.Indicates that the property supports data binding.
call_ascall_as Позволяет сопоставить неудаленную функцию с удаленной функцией.Enables a nonremotable function to be mapped to a remote function.
casecase Используется с атрибутом switch_type в объединении.Used with the switch_type attribute in a union.
коклассcoclass Помещает определение класса в IDL-файл в виде компонентного класса.Places class definition into an .idl file as coclass.
controlcontrol Указывает, что определяемый пользователем тип является элементом управления.Specifies that the user-defined type is a control.
cpp_quotecpp_quote Порождает указанную строку без кавычек в созданный файл заголовка.Emits the specified string, without the quote characters, into the generated header file.
defaultbinddefaultbind Указывает отдельное, связываемое свойство, которое лучше соответствует объекту.Indicates the single, bindable property that best represents the object.
defaultcollelemdefaultcollelem Используется для Visual Basic оптимизации кода.Used for Visual Basic code optimization.
максимальноdefaultvalue Разрешает спецификацию значения по умолчанию для типизированного необязательного параметра.Allows specification of a default value for a typed optional parameter.
defaultdefault Указывает, что настраиваемый или disp-интерфейс, определенный в коклассе, представляет интерфейс программирования по умолчанию.Indicates that the custom or dispinterface defined within a coclass represents the default programmability interface.
defaultvtabledefaultvtable Определяет интерфейс как интерфейс vtable по умолчанию для элемента управления.Defines an interface as the default vtable interface for a control.
dispinterfacedispinterface Помещает интерфейс в IDL-файл в качестве интерфейса диспетчеризации.Places an interface in the .idl file as a dispatch interface.
displaybinddisplaybind Указывает свойство, которое должно быть отображено пользователю как связываемое.Indicates a property that should be displayed to the user as bindable.
двойнойdual Помещает интерфейс в IDL-файл в виде сдвоенного интерфейса.Places an interface in the .idl file as a dual interface.
операцииentry Указывает экспортированную функцию или константу в модуле, определяя точку входа в библиотеке DLL.Specifies an exported function or constant in a module by identifying the entry point in the DLL.
first_isfirst_is Указывает индекс первого передаваемого элемента массива.Specifies the index of the first array element to be transmitted.
helpcontexthelpcontext Указывает идентификатор контекста, позволяющий пользователю просматривать сведения об этом элементе в файле справки.Specifies a context ID that lets the user view information about this element in the Help file.
helpfilehelpfile Задает имя файла справки для библиотеки типов.Sets the name of the Help file for a type library.
helpstringcontexthelpstringcontext Указывает идентификатор раздела справки в файле. hlp или. chm.Specifies the ID of a help topic in an .hlp or .chm file.
helpstringdllhelpstringdll Указывает имя библиотеки DLL, используемой для поиска строки документа (локализация).Specifies the name of the DLL to use to perform document string lookup (localization).
helpstringhelpstring Определяет строку символов, используемую для описания элемента, к которому оно применяется.Specifies a character string that is used to describe the element to which it applies.
служебhidden Указывает, что элемент существует, но не должен отображаться в браузере, ориентированном на пользователя.Indicates that the item exists but should not be displayed in a user-oriented browser.
idl_moduleidl_module Задает точку входа в библиотеке DLL.Specifies an entry point in a DLL.
idl_quoteidl_quote Позволяет использовать атрибуты или конструкции IDL, которые не поддерживаются в текущей версии Visual C++.Allows you to use attributes or IDL constructs that are not supported in the current version of Visual C++.
idid Указывает идентификатор DISPID для функции-члена (свойства или метода в интерфейсе или DISP).Specifies a DISPID for a member function (either a property or a method, in an interface or dispinterface).
iid_isiid_is Указывает идентификатор IID COM-интерфейса, на который указывает указатель интерфейса.Specifies the IID of the COM interface pointed to by an interface pointer.
immediatebindimmediatebind Указывает, что база данных будет уведомлена сразу обо всех изменениях свойства объекта, привязанного к данным.Indicates that the database will be notified immediately of all changes to a property of a data-bound object.
importlibimportlib Делает типы, которые уже были скомпилированы в другую библиотеку типов, доступными для создаваемой библиотеки типов.Makes types that have already been compiled into another type library available to the type library being created.
importimport Указывает другой файл. idl,. odl или заголовок, содержащий определения, на которые вы хотите создать ссылку из основного IDL-файла.Specifies another .idl, .odl, or header file containing definitions you want to reference from your main .idl file.
относитсяinclude Указывает один или несколько файлов заголовков для включения в созданный IDL-файл.Specifies one or more header files to be included in the generated .idl file.
инклуделибincludelib Вызывает включение IDL-или h-файла в созданный IDL-файл.Causes an .idl or .h file to be included in the generated .idl file.
inin Указывает, что параметр передается из вызывающей процедуры в вызываемую процедуру.Indicates that a parameter is to be passed from the calling procedure to the called procedure.
last_islast_is Задает индекс последнего передаваемого элемента массива.Specifies the index of the last array element to be transmitted.
lcidlcid Позволяет передать в функцию идентификатор локали.Lets you pass a locale identifier to a function.
length_islength_is Указывает число передаваемых элементов массива.Specifies the number of array elements to be transmitted.
обладателемlicensed Указывает, что компонент, к которому применяется, имеет лицензию, и его необходимо создать с помощью IClassFactory2 .Indicates that the coclass to which it applies is licensed, and must be instantiated using IClassFactory2.
Языковыеlocal Позволяет использовать компилятор MIDL в качестве генератора заголовков при использовании в заголовке интерфейса.Allows you to use the MIDL compiler as a header generator when used in the interface header. При использовании в отдельной функции обозначает локальную процедуру, для которой заглушки не создаются.When used in an individual function, designates a local procedure for which no stubs are generated.
max_ismax_is Задает максимальное значение для допустимого индекса массива.Designates the maximum value for a valid array index.
модульmodule Определяет блок библиотеки в IDL-файле.Defines the library block in the .idl file.
ms_unionms_union Управляет выравниванием представления данных сети для неинкапсулированных объединений.Controls the network data representation alignment of nonencapsulated unions.
no_injected_textno_injected_text Не позволяет компилятору внедрять код в результате использования атрибута.Prevents the compiler from injecting code as a result of attribute use.
nonbrowsablenonbrowsable Указывает, что член интерфейса не должен отображаться в обозревателе свойств.Indicates that an interface member should not be displayed in a property browser.
noncreatablenoncreatable Определяет объект, который не может быть создан самим по себе.Defines an object that cannot be instantiated by itself.
nonextensiblenonextensible Указывает, что IDispatch Реализация включает только свойства и методы, перечисленные в описании интерфейса, и не может быть расширена с помощью дополнительных элементов во время выполнения.Specifies that the IDispatch implementation includes only the properties and methods listed in the interface description and cannot be extended with additional members at run time.
objectobject Определяет пользовательский интерфейс; синоним настраиваемого атрибута.Identifies a custom interface; synonymous with custom attribute.
ODLodl Определяет интерфейс в виде интерфейса языка описания объектов (ODL).Identifies an interface as an Object Description Language (ODL) interface.
oleautomationoleautomation Указывает, что интерфейс совместим с автоматизацией.Indicates that an interface is compatible with Automation.
используемыхoptional Задает необязательный параметр для функции-члена.Specifies an optional parameter for a member function.
outout Определяет параметры-указатели, которые возвращаются из вызываемой процедуры в вызывающую (от сервера к клиенту).Identifies pointer parameters that are returned from the called procedure to the calling procedure (from the server to the client).
pointer_defaultpointer_default Задает атрибут указателя по умолчанию для всех указателей, за исключением указателей верхнего уровня, которые отображаются в списках параметров.Specifies the default pointer attribute for all pointers except top-level pointers that appear in parameter lists.
включаютpragma Порождает указанную строку без кавычек в созданный IDL-файл.Emits the specified string, without the quote characters, into the generated .idl file.
IDprogid Указывает ProgID для COM-объекта.Specifies the ProgID for a COM object.
propgetpropget Указывает функцию метода доступа к свойству (Get).Specifies a property accessor (get) function.
propputrefpropputref Задает функцию настройки свойства, которая использует ссылку вместо значения.Specifies a property setting function that uses a reference instead of a value.
propputpropput Задает функцию настройки свойства.Specifies a property setting function.
ptrptr Назначает указатель в качестве полного указателя.Designates a pointer as a full pointer.
publicpublic Гарантирует, что typedef перейдет в библиотеку типов, даже если на него нет ссылок из IDL-файла.Ensures that a typedef will go into the type library even if it is not referenced from within the .idl file.
rangerange Задает диапазон допустимых значений для аргументов или полей, значения которых задаются во время выполнения.Specifies a range of allowable values for arguments or fields whose values are set at run time.
readonlyreadonly Запрещает Присваивание переменной.Prohibits assignment to a variable.
refref Определяет указатель ссылки.Identifies a reference pointer.
requesteditrequestedit Указывает, что свойство поддерживает уведомление OnRequestEdit.Indicates that the property supports the OnRequestEdit notification.
зонаrestricted Указывает, что библиотека, или член модуля, интерфейса или DISP, не может вызываться произвольным образом.Specifies that a library, or member of a module, interface, or dispinterface cannot be called arbitrarily.
retvalretval Определяет параметр, который получает возвращаемое значение элемента.Designates the parameter that receives the return value of the member.
size_issize_is Задает размер памяти, выделенной для указателей по размеру, размеров указателей на размеры указателей и единичных или многомерных массивов.Specifies the size of memory allocated for sized pointers, sized pointers to sized pointers, and single- or multidimensional arrays.
sourcesource Указывает, что член класса, свойства или метода является источником событий.Indicates that a member of a class, property, or method is a source of events.
строкаstring Указывает, что одномерный char массив, wchar_t , byte или эквивалентный или указатель на такой массив должен рассматриваться как строка.Indicates that the one-dimensional char, wchar_t, byte, or equivalent array or the pointer to such an array must be treated as a string.
switch_isswitch_is Указывает выражение или идентификатор, выступающий в качестве discriminant объединения, который выбирает элемент объединения.Specifies the expression or identifier acting as the union discriminant that selects the union member.
switch_typeswitch_type Определяет тип переменной, используемой в качестве discriminant объединения.Identifies the type of the variable used as the union discriminant.
transmit_astransmit_as Предписывает компилятору связать представленный тип, который управляется клиентскими и серверными приложениями, с передачей типа.Instructs the compiler to associate a presented type, which client and server applications manipulate, with a transmitted type.
uidefaultuidefault Указывает, что элемент сведений о типе является элементом по умолчанию для вывода в пользовательском интерфейсе.Indicates that the type information member is the default member for display in the user interface.
uniqueunique Задает уникальный указатель.Specifies a unique pointer.
usesgetlasterrorusesgetlasterror Сообщает вызывающему, что при возникновении ошибки при вызове этой функции вызывающий объект может вызвать метод, GetLastError чтобы получить код ошибки.Tells the caller that if there is an error when calling that function, the caller can then call GetLastError to retrieve the error code.
uuiduuid Задает уникальный идентификатор класса или интерфейса.Specifies the unique ID for a class or interface.
v1_enumv1_enum Указывает, что указанный перечисляемый тип передается как 32-разрядная сущность, а не как 16-разрядное значение по умолчанию.Directs that the specified enumerated type be transmitted as a 32-bit entity, rather than the 16-bit default.
varargvararg Указывает, что функция принимает переменное число аргументов.Specifies that the function take a variable number of arguments.
vi_progidvi_progid Указывает независимую от версии форму ProgID.Specifies a version-independent form of the ProgID.
wire_marshalwire_marshal Указывает тип данных, который будет использоваться для передачи вместо типа данных, зависящего от приложения.Specifies a data type that will be used for transmission instead of an application-specific data type.

См. также разделSee also

Атрибуты по группамAttributes by Group