Add an IDL property
The Add IDL Property wizard adds a property to an interface defined in an Interface Definition Library (IDL), such as in an ATL project that contains an .idl
file. This wizard isn't available in projects that support MFC.
This wizard differs from the Add Property wizard and Add IDL MFC Property wizard in the following ways:
- The Add Property wizard adds a property to an interface in your project.
- The Add IDL MFC Property wizard is specific to MFC, ActiveX, or ATL projects that support MFC.
To add an IDL property
On the View menu, select Class View.
In Class View, right-click the name of the interface to which you want to add the property.
Note
You can also add properties to dispinterfaces, which, unless the project is attributed, are nested within the library node.
Right-click the name of the interface.
From the shortcut menu, select Add > Add Property.
In the Add IDL Property wizard, provide the information to create the property.
Select OK to add the property.
The Get
and Put
methods of the property are displayed as two icons in Class View under the interface where it's defined. Double-click either icon to view the property declaration in the .idl
file.
For ATL interfaces, the Get
and Put
functions are added to the .cpp
and .h
files.
Add an IDL property wizard
The following section describes the UI that you'll use to add an IDL property:
Property name
Sets the name of the property.
Property type
The data type of the property.
Return type
For ATL interfaces, sets the return type for the property. For dual interfaces,
HRESULT
is always the return type, and select option is unavailable. For custom interfaces, you can select a return type from the list.HRESULT
is still recommended, as it provides a standard way to return errors.Get function
For ATL interfaces, creates the
Get
method for retrieving the property value. Select Get, Put, or both.Put function
For ATL interfaces, creates the
Put
method for setting the property value. Select Get, Put, or both. If you select Put function, you can choose from the following two ways to implement the method:Option Description propput
The PropPut
function returns a copy of the object. propput is the default and the most common way to make the property writable.propputref
The PropPutRef
function returns a reference to the object, rather than returning the copy of the object itself. Consider usingpropputref
option for objects, such as large structs or arrays, that may have initialization overhead.Parameters
Displays the list of parameters added to the property. Each item in the list consists of the parameter name, parameter type, and attributes.
in
indicates that the parameter is passed from the calling procedure to the called procedure.out
indicates that the pointer parameter is returned from the called procedure to the calling procedure (from the server to the client).+
Add a parameter. In Parameters, type the parameter type and name. For example,
int x
, and select OK.x
Removes the selected parameter from Parameters.
Pencil icon
Edit the selected parameter.
Attributes
helpcontext
Specifies a context ID that lets the user view information about this property in the Help file. For more information, see
helpcontext
.helpstring
Specifies a character string that's used to describe the element to which it applies. By default, it's set to
property
Property name. For more information, seehelpstring
.id
Sets the numerical identifier that identifies the property. This option isn't available for properties of custom interfaces. For more information, see
id
.
- Additional attributes
Keywords in the Microsoft Interface Definition Language (MIDL) are described in detail in the MIDL language reference.
Option | Description |
---|---|
bindable |
Indicates that the property supports data binding. For more information, see bindable . |
defaultbind |
Indicates that this single, bindable property best represents the object. For more information, see defaultbind. |
defaultcollelem |
Indicates that the property is an accessor function for an element of the default collection. For more information, see defaultcollelem . |
displaybind |
Indicates that this property should be displayed to the user as bindable. For more information, see displaybind . |
hidden |
Indicates that the property exists but shouldn't be displayed in a user-oriented browser. For more information, see hidden . |
immediatebind |
Indicates that the database will be notified immediately of all changes to this property of a data-bound object. For more information, see immediatebind . |
local |
Specifies to the MIDL compiler that the property isn't remote. For more information, see local . |
nonbrowsable |
Tags an interface or dispinterface member that shouldn't be displayed in a properties browser. For more information, see nonbrowsable . |
requestedit |
Indicates that the property supports the OnRequestEdit notification. For more information, see requestedit . |
restricted |
Specifies that the property can't be called arbitrarily. For more information, see restricted . |
source |
Indicates that a member of the property is a source of events. For more information, see source . |