The Reset() method is the soul of the Property Inspector. This method allows you to interrogate objects and display their properties. It is called by the Property Inspector's host when an event requires a re-evaluation of the property display. For instance, the Properties palette calls the Reset() method when the user changes the selection set.
To initialize the Property Inspector for this example, you simply call Reset() with ACPI_CLEARCACHE_REFRESH flag for the third argument. This flag forces the Property Inspector to delete any static or dynamic properties in its cache. You can provide placeholder values for the two array arguments.
When calling Reset(), you pass in an array of IUnknown pointers that reference the selected objects. You must also pass in a corresponding second array containing IPropertyManager, IPropertyManager2, or IPropertySource pointers. The two arrays must match in both length and order. If the arrays are not matched exactly, the Reset() method fails.
Each entry in the second array points to a SAFEARRAY that contains a list of property manager and property source IUnknown pointers. Each SAFEARRAY list corresponds to the object in the same position in the first array. The list's elements point to the property managers and property sources of the object's base classes.
The Reset() method also provides access to the Property Inspector's caching mechanism. This gives you control over how property data is refreshed. You can configure caching options to suit your performance and display needs. You can use the flags to limit the scope of re-interrogation, to sort properties, and to force the display of all properties of all objects in the list. See the IAcPiPropertyInspector::Reset() function in the ObjectARX Reference for detailed descriptions of these flags.