Ambient Properties for Controls

If a control supports any ambient properties at all, it must at least respect the values of the following ambient properties under the conditions stated in the following table using the standard dispids.

Ambient Property Dispid Comment/Conditions for Use
LocaleID
-705
If Locale is significant to the control, e.g. for text output
UserMode
-709
If the control behaves differently in user (design) mode and run mode
UIDead
-710
If the control reacts to UI events, then it should honor this ambient property
ShowGrabHandles
-711
If the control support in-place resizing of itself
ShowHatching
-712
If the control support in-place activation and UI activation
DisplayAsDefault
-713
Only if the control is marked OLEMISC_ACTSLIKEBUTTON (which means that support for keyboard mnemonics is provided, thus IOleControl::GetControlInfo and IOleControl::OnMnemonic must be implemented).

As described previously, use of ambients requires both IOleControl (for OnAmbientPropertyChange as a minimum) as well as IOleObject (for SetClientSite and GetClientSite).

The OLEMISC_SETCLIENTSITEFIRST bit may not necessarily be supported by a container. In these circumstances, a control must resort to default values for the ambient properties that it requires.

Controls