Compartilhar via


Interfaces necessárias (COM)

A tabela abaixo lista as interfaces de contêiner de controle ActiveX e indica quais interfaces são opcionais e quais são obrigatórias e devem ser implementadas por contêineres de controle.

Interface Obrigatório? Comentários
IOleClientSite
Sim
IAdviseSink
Não
Somente quando o contêiner deseja (a) notificações de alteração de dados (controles com IDataObject), (b) exibir notificação de alteração (controles que não estão ativos e têm IViewObject ou IViewObject2) e (c) outras notificações de controles que atuam como objetos incorporados padrão.
IOleInPlaceSite
Sim
IOleControlSite
Sim
IOleInPlaceFrame
Sim
IOleContainer
Sim
Ver nota 1
IDispatch para propriedades de ambiente
Sim
Consulte a nota 2 e Propriedades do ambiente para controles
Conjuntos de eventos de controle
Sim
Confira a observação 2
ISimpleFrameSite
Não
ISimpleFrameSite e suporte para quadros simples aninhados é opcional.
IPropertyNotifySink
Não
Necessário apenas para contêineres que (a) têm sua própria interface do usuário de edição de propriedade, o que exigiria atualização sempre que um controle alterasse uma propriedade ou (b) desejasse controlar as alterações de propriedade [requestedit] e outros recursos de vinculação de dados.
IErrorInfo
Sim
Obrigatório se o contêiner suportar interfaces duplas. Ver nota 2.
IClassFactory2
Não
O suporte é altamente recomendado.
  1. IOleContainer é implementado no documento ou objeto de formulário (ou analógico apropriado) que contém os sites de contêiner. Os controles usam IOleContainer para navegar para outros controles no mesmo documento ou formulário.
  2. O suporte para interfaces duplas não é obrigatório, mas é altamente recomendado. Escrever contêineres de controle ActiveX para tirar proveito de interfaces duplas proporcionará melhor desempenho com controles que oferecem suporte a interface dupla.

Os contêineres de controle ActiveX devem oferecer suporte a exceções de automação OLE. Se um contêiner de controle oferecer suporte a interfaces duplas, ele deverá capturar exceções de automação por meio do IErrorInfo.

Contêineres