# 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.