Un contrôle ActiveX est un composant COM qui supporte uniquement l'interface IUnknown. Généralement il supporte de nombreuses autres interfaces de manière à offrir ses fonctionnalités, mais toutes les autres interfaces doivent être considérées comme optionnelles, en tant que tel un conteneur ne doit pas compter sur l'implentation d'une autre interface. En ne spécifiant aucune autre interface à supporter, le modèle COM offre la possibilité à un contrôle de cibler un domaine particulier de fonctionnalité sans avoir à supporter des interfaces particulières pour être qualifié de contrôle.

Activation sur place

L'activation sur place est un standard d'interface utilisateur Windows par lequel un objet peut être sélectionné, modifié, et de manière générale manipulé par un utilisateur dans le cadre d'un document conteneur. L'interface de l'application conteneur change pour incorporer les fonctionnalités de l'application composant qui a créé l'élément incorporé.

On appelle zone cliente d'un objet imbriqué la zone d'affichage contrôlée par l'objet.

L'interface IOleWindow fournit des méthodes qui permet à une application d'obtenir les idenficateurs des différentes fenêtres qui participe à l'activation sur place d'un objet, ainsi que l'entrée et la sortie du mode d'aide contextuelle. Plusieurs autres interfaces d'activation sur place sont dérivées de l'interface IOleWindow. Les conteneurs et les objets doivent implémenter et utiliser ces interfaces pour supporter l'activation sur place.

Ces interfaces peuvent être classées en trois niveaux hiérarchiques avec différentes interfaces implémentées à chaque niveau (cf. graphique ci dessus). Les interfaces qui installent les commandes de menu de l'interface utilisateur, les ornements des cadres, les activations et les permutations entre les fenêtres, ansi que les repartitions des menus et des raccourcis prennent place entre le conteneur de niveau supérieur et l'objet actif.

Les interfaces qui supportent l'activation et la désactivation, le défilement et les opérations de redimensionnement se repartissent dans la hierarchie de priorité, chaque niveau accomplissant les actions nécessaires.

Les interfaces implémentées par les composants

L'interface IOleInPlaceObject gère l'activation et la désactivation des objets à activation sur place, elle détermine la part visible de l'objet à activation sur place.

L'interface IOleInPlaceActiveObject fournit un canal direct de communication entre un objet à activation sur place actif et le conteneur de niveau supérieur. La communication implique la traduction de messages, l'état de son cadre (activé/désactivé) et l'état de la fenêtre de document (activé/désactivé). Elle informe aussi l'objet lorsqu'il doit se redimensionner et gérer ses boîtes de dialogues non modales.

Les interfaces implémentées par les conteneurs

L'interface IOleInPlaceUIWindow est implémentée par les applications conteneurs et utilisée par les objets des applications pour négocier l'espace sur les bords d'un document ou d'un cadre. Le conteneur fournit une structure RECT dans laquelle l'objet peut placer les barre d'outils ou d'autres contrôles similaires, détermine si les outils peuvent être insallés autour du cadre de la fenêtre et établit un canal de communication entre l'objet et chaque fenêtre de cadre et de document.

L'interface IOleInPlaceFrame contrôle le cadre du conteneur de niveau supérieur. Cette interface permet au conteneur d'insérer son groupe de menu dans le menu composé, d'installer le menu composé sur le cadre appropriée de la fenêtre, et d'enlever les éléments du menu du conteneur du menu composé. Elle place et montre le texte de statut concernant l'objet sur place. Elle également permet ou neutralise les zones 'modeless' du cadre, et traduit des frappes d'accélérateur destinées au cadre du conteneur.

L'interface IOleInPlaceSite gère les interactions entre un conteneur et la zone cliente d'un objet imbriqué.

L'interface IOleInPlaceSiteEx fournit un ensemble de méthodes de notification d'activation et désactivation qui permet à un objet d'éviter les flash à l'écran inutiles lorsque l'objet est activé et/ou désactivé.

A trier

L'interface IOleClientSite est le principal moyen par lequel un objet imbriqué obtient des informations sur la localisation et l'étendue de sa zone d'affichage, son moniker, son interface utilisateur et d'autres ressources fournies par son conteneur. Un objet serveur appèle IOleClientSite pour demander des services des son conteneur. Un conteneur doit fournir une instance d'IOLEClientSite pour chaque objet de document composé qu'il contient.

L'interface IOleObject est le principal moyen par lequel un objet imbriqué fournit ses fonctionnalités basiques et communique avec à son conteneur.

Les pages de propriétés

Les propriétes d'un objet sont exposées aux clients soit par l'intermédiaire de méthodes spécifiques des interfaces de l'objet, soit par l'implémentation de l'interface IDispatch. La technologie des pages de propriétés fournit un moyen de construire une interface utilisateur pour ces propriétés en accord avec les standards de l'interface utilisateur de Windows. De cette façon les propriétés sont exposées à l'utilisateur final. Une feuille de propriétés d'un objet est une boîte de dialogue avec onglet où chaque onglet correspond à une page de propriété spécifique.

L'interface IPropertyPageSite fournit les principales caractéristiques de l'emplacement d'une page de propriété.

L'interface IPropertyPage fournit les principales caractéristiques d'un objet 'page de propriété' gérant une page particulère .

L'interface IPerPropertyBrowsing permet d'accéder aux informations d'un page de propriété offerte par un objet.