Metodi facoltativi

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

Metodo Commenti
ContextSensitiveHelp
Facoltativo
Scorrere
Può restituire S_FALSE senza alcuna azione.
RimuoviUndoState
Può restituire S_OK senza alcuna azione.
DisattivaAndUndo
La disattivazione è obbligatoria; Annullare l'annullamento è facoltativo.

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