ArcObjects Library Reference  (Controls)    

CustomizeDialog CoClass

CustomizeDialog is a modeless dialog that allows customization of one or more ToolbarControls.

Product Availability

Available with ArcGIS Engine.


The CustomizeDialog contains a modeless dialog that allows commands, toolbar definitions (toolsets), menu definitions and palette definitions to be added to a ToolbarControl at runtime, when the IToolbarControl::Customize property is set to true.

The CustomizeDialog is modeless to allow interaction with the ToolbarControl, which would otherwise be blocked if the dialog was modal. As such, the ICustomizeDialog::StartDialog method launches the CustomizeDialog on the screen and returns immediately, rather than waiting until the CustomizeDialog closes. Consequently, when the CoClass goes out of scope the CustomizeDialog will be closed. It is sensible practise to ensure the CustomizeDialog object remains alive while the container hosting the ToolbarControl is shown, by storing the CustomizeDialog object as a form (or class) level variable.

Extended Error Information

Use the ISupportErrorInfo method InterfaceSupportsErrorInfo to determine if the object supports extended error information. If the object supports extended error info, VC++ developers should use the OLE/COM IErrorInfo interface to access the ErrorInfo object. Visual Basic developers should use the global error object Err to retrieve this extended error information.


Interfaces Description
IConnectionPointContainer Supports connection points for connectable objects.
ICustomizeDialog Provides access to members that control the customize dialog.
ICustomizeDialog2 Provides access to members that control the customize dialog.
ISupportErrorInfo Indicates whether a specific interface can return Automation error objects.

Event Interfaces

Interfaces Description
ICustomizeDialogEvents (default) Provides access to events that occur when the customize dialog is opened or closed.


Objects implementing IMultiItem  cannot be added interactively to the ToolbarControl via the CustomizeDialog. They must be added to an existing ToolbarMenu using the IToolbarMenu2::AddMultiItem method.

Working with Events

[Visual Basic 6.0]

When working with CustomizeDialog's default outbound interface in Visual Basic 6 declare variables as follows:

Private WithEvents pCustomizeDialog as CustomizeDialog