Un componente OLE può implementare un'interfaccia senza implementare tutte le semantiche di ogni metodo nell'interfaccia, invece di restituire E_NOTIMPL o S_OK in base alle esigenze. Nella tabella seguente vengono descritti i metodi che non è necessario implementare un contenitore di controlli ActiveX, ad esempio il contenitore di controllo può restituire E_NOTIMPL.
La tabella seguente descrive i metodi facoltativi; Si noti che il metodo deve ancora esistere, ma può semplicemente restituire E_NOTIMPL anziché implementare la semantica reale. Si noti che qualsiasi metodo da un'interfaccia obbligatoria non elencata di seguito deve essere considerato obbligatorio e potrebbe non restituire E_NOTIMPL.
Ioleclientsite
| Metodo |
Commenti |
SaveObject
|
Necessario per la persistenza da supportare correttamente.
|
GetMoniker
|
Necessario solo se il contenitore supporta il collegamento ai controlli all'interno del proprio modulo o documento.
|
IOleInPlaceSite
IOleControlSite
| Metodo |
Commenti |
GetExtendedControl
|
Necessario per i contenitori che supportano controlli estesi.
|
ShowPropertyFrame
|
Necessario per i contenitori che desiderano includere le proprie pagine delle proprietà per gestire le proprietà di controllo estese oltre a quelle fornite da un controllo.
|
TranslateAccelerator
|
Può restituire S_FALSE senza alcuna azione.
|
LockInPlaceActive
|
Facoltativo
|
IDispatch (proprietà ambiente)
| Metodo |
Commenti |
GetTypeInfoCount
|
Necessario per i contenitori che supportano proprietà ambientali non standard.
|
GetTypeInfo
|
Necessario per i contenitori che supportano proprietà ambientali non standard.
|
Getidsofnames
|
Necessario per i contenitori che supportano proprietà ambientali non standard.
|
IDispatch (sink di eventi)
| Metodo |
Commenti |
GetTypeInfoCount
|
Il controllo conosce le proprie informazioni sul tipo, quindi non ha bisogno di chiamare questa operazione.
|
GetTypeInfo
|
Il controllo conosce le proprie informazioni sul tipo, quindi non ha bisogno di chiamare questa operazione.
|
Getidsofnames
|
Il controllo conosce le proprie informazioni sul tipo, quindi non ha bisogno di chiamare questa operazione.
|
Ioleinplaceframe
| Metodo |
Commenti |
ContextSensitiveHelp
|
|
GetBorder
|
Necessario per i contenitori con l'interfaccia utente della barra degli strumenti (facoltativa)
|
RequestBorderSpace
|
Necessario per i contenitori con l'interfaccia utente della barra degli strumenti (facoltativa)
|
SetBorderSpace
|
Necessario per i contenitori con l'interfaccia utente della barra degli strumenti (facoltativa)
|
InsertMenus
|
Necessario per i contenitori con l'interfaccia utente del menu (facoltativa)
|
SetMenu
|
Necessario per i contenitori con l'interfaccia utente del menu (facoltativa)
|
RemoveMenus
|
Necessario per i contenitori con l'interfaccia utente del menu (facoltativa)
|
SetStatusText
|
Necessario solo per i contenitori con una riga di stato
|
EnableModeless
|
Facoltativo
|
TranslateAccelerator
|
Facoltativo
|
IOleContainer
| Metodo |
Commenti |
ParseDisplayName
|
Solo se il collegamento a controlli o altri incorporamenti nel contenitore è supportato, perché è necessario per l'associazione moniker.
|
LockContainer
|
Come per ParseDisplayName
|
EnumObjects
|
Restituisce tutti i controlli ActiveX tramite un enumeratore con IEnumUnknown, ma non necessariamente tutti gli oggetti (perché non è garantito che tutti gli oggetti siano controlli ActiveX; alcuni potrebbero essere controlli Windows regolari).
|
-
Contenitori