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.