Catégories de composants et fonctionnement

Les catégories de composants identifient les zones de fonctionnalités prises en charge et requises par un composant logiciel, une entrée de Registre est utilisée pour chaque catégorie ou zone de fonctionnalités identifiée. Chaque catégorie de composant est identifiée par un identificateur global unique (GUID). lorsqu’un contrôle est installé, il s’inscrit lui-même en tant que contrôle dans le registre système à l’aide de l’ID de catégorie de composant pour le contrôle, consultez auto-inscription pour les contrôles. Au sein de l’auto-enregistrement des contrôles, il inscrira également les catégories de composants qu’il implémente, ainsi que les catégories de composants qu’il requiert qu’un conteneur prenne en charge pour pouvoir héberger correctement le contrôle.

Lorsqu’un conteneur de contrôle offre à l’utilisateur des contrôles à insérer, il permet uniquement à l’utilisateur de sélectionner et d’instancier les contrôles qui pourront fonctionner correctement dans cet environnement. Par exemple, si le conteneur de contrôle ne prend pas en charge la liaison de liaison, le conteneur ne permet pas à l’utilisateur de sélectionner et d’instancier les contrôles qui ont une entrée dans le registre, ce qui signifie qu’ils ont besoin de la catégorie de composant DataBinding. Une boîte de dialogue commune pour l’insertion de contrôles et les API pour gérer les entrées de Registre sont disponibles.

Les catégories de composants ne sont pas cumulatives ni exclusives. un contrôle peut nécessiter une combinaison de catégories de composants pour fonctionner. Un contrôle qui n’a pas d’entrées requises pour les catégories de composants peut être supposé pouvoir fonctionner dans n’importe quel conteneur de contrôle et ne nécessite pas de fonctionnalité spécifique d’un conteneur de contrôle pour fonctionner.

Les catégories de composants suivantes sont identifiées ici, si nécessaire, des spécifications plus détaillées des catégories peuvent être disponibles.

  • Relation contenant-contenu de contrôle IsimpleFrameSite .
  • Liaison de liaison simple via l’interface IPropertyNotifySink .
  • Liaison de liaison avancée (prise en charge par les interfaces DataBinding supplémentaires de VB 4.0).
  • interfaces privées Visual Basices- IVBFormat, IVBGetControl
  • Contrôles prenant en charge Internet.
  • Contrôles sans fenêtre.

Il ne s’agit pas d’une liste définitive des catégories ; d’autres catégories sont susceptibles d’être définies à l’avenir à mesure que de nouvelles spécifications sont identifiées. Une liste à jour des catégories de composants est disponible auprès de Microsoft. Cette liste reflète les catégories de composants qui ont été identifiées par Microsoft et d’autres qui concernent les fournisseurs qui ont informé Microsoft.

Il est important de se souvenir que les contrôles doivent tenter de travailler dans autant d’environnements que possible. Si possible, le contrôle doit dégrader ses fonctionnalités lorsqu’il est placé dans un conteneur qui ne prend pas en charge certaines interfaces. L’objectif des catégories de composants est d’empêcher une situation où le contrôle est placé dans un environnement inapproprié et le contrôle ne peut pas accomplir sa tâche souhaitée. En règle générale, un contrôle doit se dégrader de manière appropriée lorsque les interfaces ne sont pas présentes, un contrôle peut choisir d’indiquer à l’utilisateur une boîte de message indiquant que certaines fonctionnalités ne sont pas disponibles ou de documenter clairement les fonctionnalités requises d’un conteneur de contrôle pour des performances optimales.

Notez que les contrôles et les conteneurs plus anciens n’utilisent pas les catégories de composants et s’appuient plutôt sur le mot clé de contrôle présent sur le contrôle dans le registre. Pour être reconnu par les anciens contrôles Container qui peuvent souhaiter inscrire le mot clé Control dans le registre, les développeurs de contrôles doivent vérifier que le contrôle peut être hébergé correctement dans ces conteneurs avant de procéder ainsi. Les conteneurs qui utilisent des catégories de composants peuvent correctement les utiliser pour héberger des contrôles plus anciens, car la DLL de catégorie de composants gère le mappage, une catégorie distincte existe pour les ControlV1 CATID de contrôles plus anciens, _ afin qu’un conteneur puisse éventuellement les exclure si nécessaire.

Comme les catégories de composants sont identifiées par des GUID, il est possible que les conteneurs qui offrent des fonctionnalités spécifiques disposent de leurs propres ID de catégorie, générés à l’aide d’un outil de génération de GUID. Toutefois, cela peut compromettre l’avantage de l’interopérabilité des contrôles et des conteneurs, c’est pourquoi il est préférable d’utiliser chaque catégorie de composants existante. les fournisseurs sont encouragés à consulter ensemble lorsqu’ils définissent de nouvelles catégories de composants pour s’assurer qu’ils répondent aux exigences courantes de la place de marché et suivent l’esprit de l’interopérabilité des contrôles de ActiveX.

Catégories de composant