Uso della funzionalità del contenitore
Le sezioni precedenti hanno descritto alcuni dei necessari supporto sul lato chiamante che un controllo ActiveX deve avere per accedere a determinate funzionalità del contenitore. Nella tabella seguente viene descritto l'utilizzo di un controllo delle interfacce lato contenitore e quando si verifica tale utilizzo.
Interfaccia | Oggetto Container | Utilizzo |
---|---|---|
Ioleclientsite |
Site |
I controlli che implementano i metodi IOleObject chiamano i metodi IOleClientSite come parte del protocollo di incorporamento OLE standard, in particolare i metodi SaveObject, ShowObject, OnShowWindow (solo se è supportato uno stato di attivazione di finestra separata), RequestNewObjectLayout e GetContainer (se si desidera comunicare con altri controlli). Il metodo GetMoniker viene utilizzato solo quando il controllo può essere collegato all'esterno, ovvero il controllo non è contrassegnato con OLEMISC_CANTLINKINSIDE. |
IOleInPlaceSite |
Site |
I controlli con attivazione sul posto e possibilmente uno stato attivo dell'interfaccia utente chiameranno i metodi IOleInPlaceSite (in genere tutti con eccezione di ContextSensitiveHelp) come parte del protocollo di attivazione sul posto OLE standard. |
Iadvisesink |
Site |
Il controllo chiama OnDataChange se il controllo supporta IDataObject, OnViewChange se il controllo supporta IViewObject2 e OnClose, OnSave e OnRename se il controllo supporta IOleObject. |
IOleControlSite |
Site |
Se supportato, il controllo chiama OnControlInfoChanged quando cambiano mnemonics, LockInPlaceActive e TransformCoords se vengono generati eventi (quest'ultimo metodo viene usato solo se le coordinate vengono passate come argomenti evento), OnFocus e TranslateAccelerator se il controllo ha uno stato attivo dell'interfaccia utente e GetExtendedControl se il controllo vuole esaminare le proprietà del controllo esteso (di proprietà del contenitore). |
IDispatch (proprietà di ambiente) |
Site |
Utilizzato per accedere alle proprietà di ambiente. |
Ipropertynotifysink |
Variabile |
Un controllo deve generare rispettivamente OnChanged e OnRequestEdit per tutte le proprietà del controllo contrassegnate come [associabili] e [request]. |
Altre interfacce sink di eventi |
Variabile |
Un controllo con interfacce in uscita diverse da IPropertyNotifySink verrà consegnato ad altri puntatori di interfaccia dell'IID corretto all'I Connessione ionPoint::Advise implementazioni (che in genere si trovano nei sotto-oggetti del controllo). Un controllo sa sempre come chiamare le proprie interfacce evento perché il controllo definisce tali interfacce. |
Ioleinplaceframe |
Frame |
Usato quando un controllo ha uno stato attivo dell'interfaccia utente sul posto che richiede strumenti a livello di frame o voci di menu. |
Ioleinplaceuiwindow |
Documento |
Usato solo quando un controllo ha uno stato attivo dell'interfaccia utente sul posto che richiede strumenti dell'interfaccia utente a livello di documento o a livello di riquadro. Si tratta di un caso raro. |