如果控件完全支援任何環境屬性,它至少必須遵循下表所說明條件下使用標準 dispids 的下列環境屬性值。
| Ambient 屬性 | Dispid | 使用批註/條件 |
|---|---|---|
| LocaleID |
-705 |
如果地區設定對控件很重要,例如文字輸出 |
| UserMode |
-709 |
如果控制件在使用者 (設計) 模式和執行模式中的行為不同 |
| UIDead |
-710 |
如果控件回應 UI 事件,則它應該接受這個環境屬性 |
| ShowGrabHandles |
-711 |
如果控件支援就地調整本身的大小 |
| ShowHatching |
-712 |
如果控件支援就地啟用和UI啟用 |
| DisplayAsDefault |
-713 |
只有當控件標示為OLEMISC_ACTSLIKEBUTTON時,才會提供鍵盤助記鍵的支援,因此必須實作 IOleControl::GetControlInfo 和 IOleControl::OnMnemonic)。 |
如先前所述,使用環境需要 IOleControl(針對 OnAmbientPropertyChange 至少),以及 IOleObject (針對 SetClientSite 和 GetClientSite)。
容器不一定支援OLEMISC_SETCLIENTSITEFIRST位。 在這些情況下,控件必須求助於它所需的環境屬性的預設值。