Share

Property Palette Classes and Interfaces (WIN)

Classes

Class Description
IAcPeButtonEditCtrl The following controls implement this interface to enable the Property Inspector or the static or dynamic properties that use the control to set and get its pictures:
  • AcPEXCtl.AcPePick2PointsCtrl.1
  • AcPEXCtl.PropertyEditorEllipses.1
  • AcPEXCtl.PropertyEditorVariant
  • AcPEXCtl.PropertyEditorEllipsesHyperlinks.1
IAcPeNoPickVariantRW The ActiveX control AcPEXCtl.PropertyEditorNoPickVariant.1 implements this interface to enable the Property Inspector to initialize its read/write attribute.
IAcPeNumericEditor The following ActiveX controls implement this interface to set the datatype for their numeric data:
  • AcPEXCtl.PropertyEditorACADNumeric.1
  • AcPEXCtl.PropertyEditorEllipses.1
  • AcPEXCtl.PropertyEditorVariant.1
  • AcPEXCtl.PropertyEditorEllipsesHyperlinks.1
  • AcPEXCtl.PropertyEditorNoPickVariant.1
  • AcPEXCtl.PropertyEditorEllipseEndAngle.1
IAcPePick2PointsCtrl The ActiveX control AcPEXCtl.AcPePick2Points.1 implements this interface to allow third party developers to control aspects of the Pick2Points mechanism.
IAcPeSpinCtrl The ActiveX control AcPEXCtl.PropertyEditorSpin.1 implements this interface to enable the Property Inspector to initialize the control.
IAcPeVariantCtrl The ActiveX controls AcPEXCtl.PropertyEditorVariant.1 and AcPEXCtl.PropertyEditorNoPickVariant.1 implement this interface to enable the Property Inspector to initialize the control and set its cookies.
IAcPiCategorizeProperties Objects and commands implement this interface to categorize static and dynamic properties for display in the Property Inspector. This extends the existing ICategorizeProperties interface.IAcPiCategorizeProperties supports nesting of categories as well as command button display in the category row of the Property Inspector control. For static properties, this interface is queried on the IUnknown pointer of the object/command. For dynamic properties, it is queried on either the IDynamicProperty or IDynamicProperty2 interface pointers.
IAcPiCommandButton This interface exposes properties and methods that the Property Inspector uses to create push button controls between the property list and the status bar. The Property Inspector creates one push button for each object returned by IAcPiPropCommandButtons::GetCommandButtons().
IAcPiPropCommandButtons Objects implement this interface to expose command buttons on the Property Inspector control. Command buttons appear as one or more rows of push buttons on the Property Inspector between the property list and the status bar.The Property Inspector queries an object for this interface when displaying its properties. If the object implements the interface, the Property Inspector calls the GetButtons() method to obtain references to IAcPiCommandButton interfaces.
IAcPiPropertyDisplay Objects and commands implement this interface to customize display properties on a per-property basis.If this interface is implemented, the Property Inspector invokes its methods to identify custom display attributes for every property. For static properties, the interface is queried on the IUnknown of the object/command. For dynamic properties, it is queried on either IDynamicProperty or IDynamicProperty2 interface pointers.
IAcPiPropertyEditControl This interface is implemented by an ActiveX control to be hosted by the Property Palette Inspector control to allow the container to communicate with the ActiveX control.
IAcPiPropertyEditEventsSink This event interface is implemented by an ActiveX control to be hosted by the Property Palette Inspector control. It provides methods that allow the control to communicate with the IAcPiPropertyInspector host.
IAcPiPropertyExpression An interface that defines a property which supports expressions. Property inspector retrieves the expression of a property and sets its value through this interface.
IAcPiPropertyInspector This interface is used to create a Property Inspector control that vertical applications and third- party developers can use instead of OPM to display properties of objects and commands in their own host dialogs and applications.The IAcPiPropertyInspector interface provides the capabilities for interrogating and displaying categorized properties for objects and commands with the new UI look. In addition, it provides a caching mechanism that can be used to display properties of previous commands and objects immediately, without performance concerns. It also provides capabilities for controlling the display/caching mechanism in an easy, customizable format.
IAcPiPropertyInspectorEventsSink Applications use this interface to signal a change in the Property Inspector that requires more than simply updating the property values. The methods in this interface also update the appearance of the control itself.
IAcPiPropertyInspectorInputEventSink This event interface is implemented by an ActiveX control that hosts the Property Palette Inspector control. It provides methods that allow the Property Palette Inspector control to communicate with the IAcPiPropertyInspectorInputEventSink host.
IAcPiPropertyUnspecified This interface is implemented by a property that can have a "No Default" value specified in the Property Inspector list control.
IAcPpAcadInput This interface is for internal use only.The IAcPpAcadInput interface defines methods that allow modeless dialogs to acquire input using the AutoCAD acedGetXXX() acquisition methods. It allows clients to provide the parameters that would normally be passed to the acedGetXXX() methods and to acedInitGet(). ActiveX controls hosted by the Property Palette Inspector that need to obtain input using the AutoCAD graphics area or command line are typical clients of this interface.The AcPpAcadInput co-class implements this interface for the Property Palette. The interface could be re-used by other applications. The co-class provides the following key features:
IAcPpPalette This interface provides access to an individual palette (or tab) in the Property Palette dialog. It exposes methods for manipulating the tab name and obtaining a reference to the tab’s embedded Property Inspector through its IAcPiPropertyInspector interface.A single palette object contains one Property Inspector control embedded in the palette.
IAcPpPaletteEvents This interface defines events that individual property palettes fire to notify listeners of changes in the property palette’s state. This interface is exposed by the AcPpPalette co-class as a connection point that can be accessed using the IConnectionPointContainer interface on the object.
IAcPpPaletteSet This interface provides access to AutoCAD’s Properties palette. It exposes methods for manipulating the tabs displayed on the dialog, adding and removing tabs, and changing the dialog’s visibility.The Properties palette is an Enhanced Secondary Windows Palette Set. It contains one or more tabs represented by IacPpPalette instances. The dialog also contains controls for manipulating the selection set, in the form of a Pick Select button, a Pick Set button, a Quick Select button, as well as a combo box that can be used to operate on a subset of the currently selected objects.See the AutoCAD User's Guide for... more
IAcPpPaletteSet2 This interface provides access to AutoCAD’s Properties palette.
IAcPpPaletteSetEvents This interface defines events that are fired by the Property Palette to notify listeners of changes in the Property Palette dialog state. The interface is exposed by the AcPpPaletteSet co-class as a connection point that can be accessed using the IConnectionPointContainer interface on the object.
ICategorizeProperties This interface is used by the Properties window to categorize the properties shown in the control. It is optional but strongly recommended. If the object does not implement this interface, all properties are categorized under the General category.
IDynamicDialogProperty The Properties window code will call QueryInterface on this interface to determine whether an ellipsis button should be displayed for this dynamic property. Implementation of this interface provides the Properties window with a hook for calling a specific function or VBA macro in response to clicking on the ellipsis button.
IDynamicEnumProperty Components that implement dynamic properties can implement this interface to create an enumerated property that will be displayed as a drop-down list in the Properties window.
IDynamicProperty Implemented by the component, this interface should be implemented for each property that is not Automation based, or part of the type information for a given selectable object. It is the main interface though which the Properties window determines the attributes of dynamic properties. To implement dynamic properties, components should pass instances of these classes to AutoCAD's implementation of IPropertyManager to add and remove dynamic properties. When the user selects an object, the Properties window gets the property manager for that AcRxClass object, uses it to get the list of dynamic properties to display along with the static, Automation-based ones,... more
IDynamicProperty2 This interface is similar to the IDynamicProperty interface, except that its functions take IUnknown pointers to objects instead of AcDbObjectId identifiers as parameters.
IDynamicPropertyNotify When a dynamic property changes, the Properties window needs to be notified so that it knows to refresh the values of the properties it is displaying. The standard mechanism of IConnectionPoint/IConnectionPointContainer is too general and inefficient for the simple bi-directional mechanism needed here. All that is required is for the server (the Properties window component) to pass a sink interface to the property class implementer, who then hangs on to that interface pointer, and uses it to inform the Properties window when to re-get the property values. To this end, IDynamicProperty includes two methods, Connect()and Disconnect(), that the... more
IDynamicPropertyNotify2 This interface is similar to the IDynamicPropertyNotify interface, except that its functions take IUnknown pointers instead of IDynamicPropertyNotify pointers as parameters.
IFilterableMultiplePropertySource This interface can be used to inform the property filter customization framework about dynamic properties that may be multiple in number, but should be handled as a single customizable element in the customization framework.The "Attributes" property of the "Block Reference" entity is an example of a property like this. A particular block reference may have no attributes, one attribute, or many attributes; multiple attributes have varying property names that are not defined by the "Block Reference" entity type, but any "attribute" dynamic properties are all identified by the same GUID, and are represented in the property filter customization user... more
IFilterablePropertyThis interface can be used to specify whether a particular property should be visible for a property filter customization. This interface's methods are not instance dependent, but rather work at the type level.This interface should be implemented when an entity type dictates a property's availability in the property filter customization user interface.For static properties, this interface should be implemented on the entity's COM wrapper. For dynamic properties, this interface should be implemented on on the implementer of the IDynamicProperty interface.
IFilterablePropertySource This interface can be used to make an IPropertySource implementation create dynamic properties for property filter customization in an instance independent way.It should be implemented in cases where a property's creation is normally instance dependent but the entity type would like to dictate that the property should always be or never be available in the property filter customization user interface. This interface's GetFilterableProperties method is very much like the IPropertySource::GetProperties method. The difference is that the GetFilterableProperties method is not passed the IUnknown* of an instance.This interface should be implemented on the implementer of the IPropertySource interface.
IFilterableSubtypePropertySourceThis interface can be used to define entity subtypes. The property filter customization user interface will present the subtypes as children of the entity type whose IPropertySource implementer has implemented this interface. Only a single level of subtypes are allowed. The subtype mechanism for property filter customization does not support full hierarchies.An example of an entity with subtypes is the 3DSolid entity type. A 3DSolid can be a primitive subtype like a box or a sphere, or it may be a generic BREP solid. The set of subtypes defined by this interface must be complete. That is, any instance... more
IOPMPropertyDialog The IOPMPropertyDialog interface provides a method that enables the message handler of a stock ellipsis control to display a modal dialog when the Property Inspector creates a stock ellipsis control to display a property.
IOPMPropertyDialog2 The IOPMPropertyDialog2 interface provides a method that enables the message handler of a stock ellipsis control to display a modal dialog when the Property Inspector creates a stock ellipsis control to display a property.
IOPMPropertyExpander The main purpose of this class is to allow one property to be broken out into several properties in the Properties window. For example, Automation has a property called StartPoint for AcadLine. This property gets/sets a VARIANT which contains an array of doubles (technically the VARIANT contains a pointer to a SAFEARRAY of doubles) representing the start point of the line. This is somewhat more efficient and cleaner from an API point of view than having Automation properties called StartX, StartY, StartZ on AcadLine. Nevertheless, the Properties window needed to display the properties expanded out in this fashion. In addition... more
IOPMPropertyExpander2 This interface is almost exactly the same as IOPMPropertyExpander. The main purpose of IOPMPropertyExpander is to allow one property to be broken out into several properties in the Properties window. IOPMPropertyExpander2 has exactly the same purpose, but it can be used with either dynamic or static properties while IOPMPropertyExpander is intended for only static properties.IOPMPropertyExpander2 has exactly the same methods as IOPMPropertyExpander, but each function has an additional input argument. The argument, pUnk, is used to pass in the IUnknown of the selected object to which the IDynamicProperty pertains.
IOPMPropertyExpanderExpression This interface complements IOPMPropertyExpander in a way that it allows property providers (AutoCAD AcDbObject-based COM objects) to support expression meta-properties on each property broken out from IOPMPropertyExpander (for details on how properties can be broken down into groups, please refer to documentation of IOPMPropertyExpander interface). If a property provider COM object were to support expression meta-property, it needs to implement IOPMPropertyExpanderExpression, allowing OPM framework to query and set expressions through its interface methods.
IOPMPropertyExtensionIOPMPropertyExtension contains a variety of Properties window-specific functionality.
IPropertyManager This is the main property manager class. Use this to add your property classes for a given type of entity. You can get this interface using
IPropertyManager2 This interface is similar to the IPropertyManager interface, except that its functions take IUnknown pointers instead of IDynamicProperty or IDynamicProperty2 pointers as parameters.
IPropertySource This interface defines methods that provide per-instance dynamic properties for objects. Applications typically implement this interface on one or more COM objects, and store instances of these objects in the Property Palette’s protocol extension framework using the OPMPerInstancePropertySources, OPMPerInstancePropertyExtension, and OPMPerInstancePropertyExtensionFactory classes.
IRetrieveApplication This interface is used to set and get an Application object. Following the ActiveX Automation guideline, every object in an ActiveX Automation object model must expose an Application property. This property returns the top level Application object. Since AcDb COM wrapper objects can be hosted in different applications, they use the Application object set through this interface to implement their Application property. Every native AcDb COM wrapper object implements this interface. For developers who implement COM support for their custom AcDb objects, we strongly recommend this interface be implemented on their COM wrapper objects.
IRetrieveApplicationImpl This IRetrieveApplication-based class is used to manage the Application interfaces for the objects. Do not derive from this class if your objects are to work with a non-AutiCAD based host application.
OPMPerInstancePropertyExtension This class stores a list of property source names. Instances of this class are associated with AcRxClass instances using AutoCAD’s protocol extension framework and the OPMPerInstancePropertyExtensionFactory class.The extension instance associated with a particular AcRxClass can be obtained using the GET_OPM_PERINSTANCE_EXTENSION_PROTOCOL() macro.
OPMPerInstancePropertyExtensionFactory This class associates OPMPerInstancePropertyExtension instances with AcRxClass instances using AutoCAD’s protocol extension mechanism. AutoCAD maintains a global instance of this class, which can be accessed using the GET_OPM_PERINSTANCE_CREATE_PROTOCOL() macro.
OPMPerInstancePropertySources This class stores references to IPropertySource objects in a name->source map. Property source names in the map must be unique.AutoCAD instantiates a global instance of this class for storing property sources on an application-wide basis. The global instance can be accessed using the GET_OPM_PERINSTANCE_SOURCES() macro.
OPMPropertyExtension This class is implemented by AutoCAD and available through GET_OPMEXTENSION_PROTOCOL(). Once you have the OPMPropertyExtension pointer, you can either add your own property manager via SetPropertyManager or use the one provided by AutoCAD via GetPropertyManager
OPMPropertyExtensionFactory This class is implemented by AutoCAD and available through GET_OPMEXTENSION_CREATE_PROTOCOL. You can add property classes by calling GET_OPMPROPERTY_MANAGER for a particular AcRxClass to get the property manager for that class. You can also enumerate the dynamic properties that have been added to that class as well as its base class(es) via GetPropertyCount and GetPropertyClassArray.

Templates

Template Description
IAcPiCategorizePropertiesImpl For internal use only.
IOPMPropertyExpanderImpl AutoAcad AcDbObject based COM objects can use the IOPMPropertyExpanderImpl class to implement the Property Palette IOPMPropertyExpander Interface. See the documentation for IOPMPropertyExpander for details of the methods. The Property Palette calls the methods of IOPMPropertyExpanderImpl.
IOPMPropertyExtensionImpl Interface for OPM property extension classes.
IOPMPropertyExtensionImpl2 For internal use only.

Was this information helpful?