Names, Add Property Wizard

 

The latest version of this topic can be found at Names, Add Property Wizard.

Use this wizard to add a property to an interface.

Property type
Sets the type of property you are adding. For MFC dispinterfaces, provide your own type or select from the predefined list. If you provide a stock implementation of a property, Property type is set to the stock type and is unavailable for change.

Property name
Sets the name of the property. For MFC dispinterfaces associated with ActiveX controls, you can supply your own name or you can select a stock property name from the predefined list. If you provide your own property name, the Stock implementation type is unavailable. See Stock Properties for a description of the properties in the list.

Interface type Description
ATL dual interface, custom interface, and local custom interface Provide a property name.
MFC dispinterface, MFC ActiveX control dispinterface Provide a property name or select a stock property from the list. If you select a property from the list, the appropriate value appears in the Property type box. You can change this type, depending on your selection under Implementation type.

Return type
ATL interfaces only. Sets the return type for the property. For dual interfaces, HRESULT is always the return type, and this box is unavailable. For custom interfaces, you can select a return type from the list. HRESULT is still recommended, because it provides a standard way to return errors.

Variable name
MFC dispinterfaces only. Available only if you specify Member variable under Implementation type. Sets the name of the member variable with which the property is associated. By default, the variable name is set to m_PropertyName. You can edit this name.

Notification function
MFC dispinterfaces only. Available only if you specify Member variable under Implementation type. Sets the name of the notification function called if the property changes. By default, the name of the notification function is set to OnPropertyNameChanged. You can edit this name.

Get function
For MFC dispinterfaces. Available only if you specify Get/Set methods under Implementation type. Sets the name of the function to get the property. By default, the name of the Get function is set to GetPropertyName. You can edit this name. If you delete the name, the function GetNotSupported is inserted into the interface dispatch map. The GetPropertyName function specifies that the property as readable.

Set function
MFC dispinterfaces only. Available only if you specify Get/Set methods under Implementation type. Sets the name of the function to set the property. By default, the name of the Set function is set to SetPropertyName. You can edit this name. If you delete the name, the function SetNotSupported is inserted into the interface dispatch map. The SetPropertyName function specifies that the property is writable.

Implementation type
MFC dispinterfaces only. Specifies how to implement the property you are adding.

Implementation type Description
Stock Specifies a stock implementation for the property selected in Property name. The default. See Stock Properties for more information.

If you specify Stock, then Property type, Parameter type, and Parameter name are dimmed.
Member variable Specifies the property is added as a member variable. You can add custom properties or most stock properties as member variables. You cannot specify Member variable for Caption, hWnd, and Text properties.

Provides default names under Variable name and Notification function. You can edit this name.
Get/Set methods Specifies the property is added as GetPropertyName and SetPropertyName functions, by default. These names appear under Get function and Set function.

You can change the default Property type, which passes a value for the Get function. You can specify parameters for the Get and Set functions.

Get function
For ATL interfaces. Sets the property as readable; that is, it creates the Get method for retrieving this property from the object. You must select Get, Put, or both.

Put function
ATL interfaces only. Sets the property writable; that is, it creates the Put method for setting, or "putting," this property of the object. You must select Get, Put, or both. If you select this option, you can choose from the following two ways to implement the method:

Option Description
PropPut The PropPut function returns a copy of the object. This 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 using this option for objects, such as large structs or arrays, that may have initialization overhead.

Parameter attributes
ATL interfaces only. Sets whether the parameter specified by Parameter name is in, out, both, or none.

Option Description
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).

Parameter type
Sets the data type of the parameter. Select the type from the list.

Parameter name
Sets the name of a parameter you are adding for the property, if the property has parameters. Once you click Add, the parameter name appears in Parameter list.

Parameter list
Displays the list of attributes to be added to the property. Each item in the list consists of the parameter name, parameter type, and attributes. Use Add and Remove to update the list.

Add
Adds the parameter you specify in Parameter name and Parameter type to the Parameter list. You must click Add to add a parameter to the list.

Remove
Removes the parameter you select in Parameter list.

Default property
MFC dispinterface only. Sets this property as the default for the interface. An interface can have only one default property; once you specify the default property, for any other properties you add to the interface, this box is unavailable.

See Also

Adding a Property
IDL Attributes, Add Property Wizard
Implementing an Interface