Compartilhar via


Interfaces Necessárias (COM)

A tabela a seguir lista as interfaces do Contêiner de Controle ActiveX e indica quais interfaces são opcionais e que são obrigatórias e devem ser implementadas por contêineres de controle.

Interface Necessá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 inseridos padrão.
IOleInPlaceSite
Sim
IOleControlSite
Sim
IOleInPlaceFrame
Sim
IOleContainer
Sim
Consulte a observação 1
de IDispatch para propriedades ambientes
Sim
Consulte a observação 2 e propriedades de ambiente para controles
Conjuntos de eventos de controle
Sim
Consulte a observação 2
ISimpleFrameSite
Não
ISimpleFrameSite e o 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 em si ou (b) quisesse controlar [requestedit] alterações de propriedade e outros recursos de associação de dados.
IErrorInfo
Sim
Obrigatório se o contêiner der suporte a interfaces duplas. Consulte a observação 2.
IClassFactory2
Não
O suporte é altamente recomendado.
  1. IOleContainer é implementado no objeto de documento ou formulário (ou analógico apropriado) que contém os sites de contêiner. Os controles usam IOleContainer para navegar até outros controles no mesmo documento ou formulário.
  2. O suporte para interfaces duplas não é obrigatório, mas é altamente recomendado. Gravar contêineres de controle ActiveX para aproveitar interfaces duplas oferecerá melhor desempenho com controles que oferecem suporte a interface dupla.

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

contêineres