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 à des messages de fenêtre tels que WM_PAINT et WM_CLOSE. Le module 2 présente le modèle COM (Component Object Model).

COM est une spécification pour la création de composants logiciels réutilisables. La plupart des fonctionnalités que vous utiliserez dans un programme Windows moderne s’appuient sur COM, comme les suivantes :

  • Graphics (Direct2D)
  • Texte (DirectWrite)
  • The Windows Shell
  • 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. Mais si votre programme est strictement un consommateur de COM, vous constaterez peut-être que COM est plus facile à comprendre que vous ne vous attendez.

Ce module montre comment appeler des API com dans votre programme. Il décrit également certains des raisonnements sous-jacents à la conception de COM. Si vous comprenez pourquoi COM est conçu tel qu’il est, vous pouvez programmer avec lui 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. Personnes pensent parfois que COM et OLE sont la même chose. Cela peut être une autre raison de la perception que COM est difficile à apprendre. OLE 2.0 est basé sur COM, mais vous n’avez pas besoin de 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 norme binaire, COM est indépendant du langage, bien qu’il soit mappé 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.

Contenu de cette section

Apprendre à programmer pour Windows en C++