Métodos opcionais em interfaces de controle
Implementar uma interface não significa necessariamente implementar todos os métodos dessa interface para fazer algo mais do que retornar E_NOTIMPL ou S_OK conforme apropriado. A tabela a seguir identifica os métodos das interfaces listadas no tópico O que significa suporte para uma interface que um controle pode implementar dessa maneira. Qualquer método não listado aqui deve ser totalmente implementado se a interface for suportada.
IOleControl | Comentários |
---|---|
GetControlInfo, OnMnemonic |
Obrigatório para controles com mnemônicos. |
IOleControl::OnAmbientPropertyChange |
Obrigatório para controles que usam propriedades ambientais. |
IOleControl::FreezeEvents |
Consulte Congelamento de eventos |
IOleObject | |
SetMoniker |
Obrigatório se o controle não estiver marcado com OLEMISC_CANTLINKINSIDE |
GetMoniker |
Obrigatório se o controle não estiver marcado com OLEMISC_CANTLINKINSIDE |
InitFromData |
Opcional |
GetClipboardData |
Opcional |
SetExtent |
Obrigatório apenas para DVASPECT_CONTENT |
GetExtent |
Obrigatório apenas para DVASPECT_CONTENT |
SetColorScheme |
Opcional |
DoVerb |
Ver nota 1 |
IOleInPlaceObject | |
ContextSensitiveHelp |
Opcional |
ReativarAndDesfazer |
Opcional |
IOleInPlaceActiveObject | |
ContextSensitiveHelp |
Opcional |
IViewObject2 | |
Congelamento |
Opcional |
Descongelar |
Opcional |
GetColorSet |
Opcional |
IPersistStream, IPersistStreamInit, IPersistMemory | |
GetSizeMax |
Confira a observação 2 |
- Um controle com páginas de propriedades deve oferecer suporte a IOleObject::D oVerb para os verbos OLEIVERB_PROPERTIES e OLEIVERB_PRIMARY. Um controle que pode ser ativo deve oferecer suporte a DoVerb para o verbo OLEIVERB_INPLACEACTIVATE. Um controle que pode ser ativo da interface do usuário também deve oferecer suporte a DoVerb para o verbo OLEIVERB_UIACTIVATE.
- Se um controle oferece suporte a IPersistStream ou IPersistStreamInit e pode retornar um valor preciso, ele deve fazer isso.