Module 2. Utilisation de COM dans votre programme Windows-Based

Le module 1 de cette série a montré comment créer une fenêtre et répondre aux messages de fenêtre tels que WM_PAINT et WM_CLOSE. Le module 2 introduit le modèle objet de composant (COM).

COM est une spécification pour créer des composants logiciels réutilisables. La plupart des fonctionnalités que vous utiliserez dans un programme Windows moderne s’appuient sur COM, par exemple :

  • Graphiques (Direct2D)
  • Texte (DirectWrite)
  • Interpréteur de commandes Windows
  • Contrôle Ruban
  • Animation de l’interface utilisateur

(Certaines technologies de cette liste utilisent un sous-ensemble de COM et ne sont donc pas « pures » COM.)

COM a la réputation d’être difficile à apprendre. Et il est vrai que l’écriture d’un nouveau module logiciel pour prendre en charge COM peut être difficile. Toutefois, si votre programme est strictement un consommateur de COM, vous pouvez constater que COM est plus facile à comprendre que vous vous attendez.

Ce module montre comment appeler des API BASÉEs sur COM dans votre programme. Il décrit également certains des raisonnements derrière la conception de COM. Si vous comprenez pourquoi COM est conçu comme c’est le cas, vous pouvez le programmer plus efficacement. La deuxième partie du module décrit certaines pratiques de programmation recommandées pour COM.

COM a été introduit en 1993 pour prendre en charge la liaison d’objets et l’incorporation (OLE) 2.0. Les gens pensent parfois que COM et OLE sont la même chose. Cela peut être une autre raison pour la perception que COM est difficile à apprendre. OLE 2.0 est basé sur COM, mais vous n’avez pas à connaître OLE pour comprendre COM.

COM est une norme binaire, pas une norme de langage : elle définit l’interface binaire entre une application et un composant logiciel. En tant que standard binaire, COM est neutre en langage, bien qu’il correspond naturellement à certaines constructions C++. Ce module se concentrera sur trois objectifs majeurs de COM :

  • Séparation de l’implémentation d’un objet de son interface.
  • Gestion de la durée de vie d’un objet.
  • Découverte des fonctionnalités d’un objet au moment de l’exécution.

Dans cette section

Apprenez à programmer pour Windows en C++