Share via


Categorias de componentes e como elas funcionam

As categorias de componentes identificam as áreas de funcionalidade que um componente de software suporta e requer, uma entrada do Registro é usada para cada categoria ou área de funcionalidade identificada. Cada categoria de componente é identificada por um identificador global exclusivo (GUID), quando um controle é instalado, ele se registra como um controle no registro do sistema usando o ID de categoria de componente para controle, consulte Auto-registro para controles. Dentro do auto-registro de controles, ele também registrará as categorias de componentes que implementa e as categorias de componentes que requer que um contêiner ofereça suporte para hospedar com êxito o controle.

Quando um contêiner de controle está oferecendo controles para o usuário inserir, ele só permite que o usuário selecione e instancie os controles que poderão funcionar adequadamente nesse ambiente. Por exemplo, se o contêiner de controle não oferecer suporte à vinculação de dados, o contêiner não permitirá que o usuário selecione e instancie os controles que têm uma entrada no Registro significando que eles exigem a categoria de componente de vinculação de dados. Uma caixa de diálogo comum para inserção de controle e APIs para manipular as entradas do Registro estão disponíveis.

As categorias de componentes não são cumulativas ou exclusivas, um controle pode exigir qualquer combinação de categorias de componentes para funcionar. Pode-se esperar que um controle que não tenha entradas necessárias para categorias de componentes seja capaz de funcionar em qualquer contêiner de controle e não exija nenhuma funcionalidade específica de um contêiner de controle para funcionar.

As seguintes categorias de componentes são identificadas aqui, sempre que necessário podem estar disponíveis especificações mais pormenorizadas das categorias.

Esta não é uma lista definitiva de categorias; É provável que outras categorias sejam definidas no futuro, à medida que forem identificados novos requisitos. Uma lista atualizada de categorias de componentes está disponível na Microsoft; essa lista reflete as categorias de componentes que foram identificadas pela Microsoft e quaisquer outras sobre as quais os fornecedores informaram a Microsoft.

É importante lembrar que os controles devem tentar trabalhar no maior número possível de ambientes. Se for possível, o controle deve degradar sua funcionalidade quando colocado em um contêiner que não oferece suporte a determinadas interfaces. O objetivo das categorias de componentes é evitar uma situação em que o controle é colocado em um ambiente inadequado e o controle não pode atingir a tarefa desejada. Geralmente, um controle deve degradar normalmente quando as interfaces não estão presentes, um controle pode optar por avisar o usuário com uma caixa de mensagem que alguma funcionalidade não está disponível ou documentar claramente a funcionalidade necessária de um contêiner de controle para um desempenho ideal.

Observação Controles e contêineres mais antigos não fazem uso de categorias de componentes e, em vez disso, dependem da palavra-chave de controle que está presente no controle no registro. Para ser reconhecido por controles de contêineres mais antigos que podem desejar registrar a palavra-chave control no registro, os desenvolvedores de controle devem verificar se o controle pode ser hospedado com êxito em tais contêineres antes de fazer isso. Os contêineres que usam categorias de componentes podem usá-los com êxito para hospedar controles mais antigos à medida que a DLL da categoria de componentes manipula o mapeamento, existe uma categoria separada para controles mais antigos CATID_ControlV1 para que um contêiner possa excluí-los opcionalmente, se necessário.

Como as categorias de componentes são identificadas por GUIDs, é possível que contêineres que oferecem funcionalidades específicas específicas tenham seus próprios IDs de categoria, gerados usando uma ferramenta de geração de GUID. No entanto, tal pode possivelmente comprometer a vantagem da interoperabilidade dos controlos e contentores, pelo que é preferível que, sempre que possível, sejam utilizadas categorias de componentes existentes. Os fornecedores são incentivados a consultar juntos ao definir novas categorias de componentes para garantir que atendam aos requisitos comuns do mercado e sigam o espírito de interoperabilidade dos controles ActiveX.

Categorias de componentes