Informações do Registro de controles ActiveX
Há uma série de entradas do Registro e sinalizadores que são usados. Além disso, os controles podem oferecer suporte a categorias de componentes para classificar os recursos que eles fornecem.
As chaves do Registro relacionadas aos controles são marcadas com um asterisco na seguinte árvore:
HKEY_CLASSES_ROOT
CLSID
{control_CLSID}
ProgID = <identifier>
InprocServer32 = <filename>.dll
*DefaultIcon = <filename>.<ext>,resourceID
*ToolboxBitmap32 = <filename>.<ext>,resourceID
*Control
verb
*n = &Properties...
*MiscStatus = 0
TypeLib = {object_typelibID}
*Version = version_number
A entrada DefaultIcon é usada para identificar um ícone a ser exibido quando o controle é minimizado para um ícone. A função ExtractIcon é usada para obter o ícone do arquivo .DLL ou .EXE especificado.
A entrada ToolboxBitmap32 identifica o nome do módulo e o identificador de recurso para um bitmap 16 * 15 a ser usado para a face de uma barra de ferramentas ou botão da caixa de ferramentas. O tamanho padrão do ícone do Windows é muito grande para ser usado para essa finalidade. Essa entrada oferece suporte especificamente a contêineres de controle que têm um modo de design no qual se seleciona controles e os coloca em um formulário que está sendo projetado. Por exemplo, no Visual Basic, o ícone do controle é exibido na caixa de ferramentas do Visual Basic durante o modo de design.
A entrada Control marca um objeto como um controle. Essa entrada é frequentemente usada por contêineres para preencher caixas de diálogo. O contêiner usa essa subchave para determinar se um objeto deve ser incluído em uma caixa de diálogo que exibe controles.
A subchave Inserível também pode ser usada com controles, dependendo se o objeto pode atuar apenas como um objeto incorporado in-loco sem recursos especiais de controle. Os objetos marcados com Inserível aparecem na caixa de diálogo Inserir Objeto de seu contêiner. A entrada Inserível geralmente significa que o controle foi testado com contêineres que não são de controle.
As subchaves Insertable e Control são opcionais. Um controle pode omitir a subchave Inserível se não tiver sido projetado para funcionar com contêineres mais antigos que não entendem controles. Um controle pode omitir a chave Control se ele for projetado apenas para trabalhar com um contêiner específico e, portanto, não desejar ser inserido em outros contêineres.
Os controles devem ter um verbo Propriedades, OLEIVERB_PROPERTIES, juntamente com quaisquer outros verbos que eles suportam. O verbo Propriedades, bem como o verbo padrão OLEIVERB_PRIMARY, instrui o controle a exibir sua folha de propriedades. O verbo Propriedades é exibido como o item Propriedades no menu do contêiner quando o controle está ativo. Dessa forma, o controle pode exibir sua própria página de propriedades permitindo alguma funcionalidade útil para o usuário final, mesmo se o contêiner não manipular controles.
Um controle define a chave MiscStatus para descrever-se a contêineres potenciais. Os bits assumem os valores de OLEMISC e os controles adicionam vários valores a essa enumeração. Consulte os valores de enumeração OLEMISC para obter mais informações. O cliente pode obter essas informações chamando IOleObject::GetMiscStatus sem precisar instanciar o controle primeiro.
Finalmente, Version descreve a versão do controle que deve corresponder à versão da biblioteca de tipos associada a esse controle.
Também nas informações de tipo para um controle, o controle de atributo marca uma entrada de coclasse como descrevendo um controle.