Introduction
L'objet COM, de l'abréviation de l'anglicisme «Components Objects Model», est une bibliothèque d'objet COM du système Windows et seulement utilisable sur des systèmes d'exploitation Windows ou compatible développé par Microsoft en 1993.
Un COM (Components Objects Model) est théoriquement indépendant de la plateforme, distribuable et un système orienté objet pour les composantes logiciels binaires avec lequel ils pourront interagir. Ainsi, par exemple, on peut utiliser la technologie en tiers, utilisant le langage de programmation VB et la technologie ASP classique. Mais le seul véritable langage de programmation requis pour l'utilisation des COM, est une langage de programmation pouvant créer des structures de pointeurs, explicite ou implicite, et des fonctions d'appel à des pointeurs. Par conséquence, les langages de programmation orientée objet (POO), comme C++ ou Smalltalk, fournissent des mécanismes simplifiant l'intégration des objets COM, mais les langages de programmation comme un C, Pascal, Ada, Java ou un environnement de programmation BASIC peuvent créer et utiliser les objets COM.
Le COM est une fondation technologique basé sur Microsoft OLE (composé de documents), ActiveX (composante d'activation Internet) et beaucoup d'autres composantes.
Installation
Le système d'exploitation Windows propose une application «Services de composants», permettant d'ajouter, modifier ou supprimer des objets COM :
Liste des objets COM
Voici la liste des objets COM les plus populaires :
ProgID | CLSID | Description |
---|---|---|
Excel.Application | {00024500-0000-0000-C000-000000000046} | Cet objet COM permet l'automatisation d'Excel, création de feuilles de calcul,... |
InternetExplorer.Application | {0002DF01-0000-0000-C000-000000000046} | Cet objet COM permet l'automatisation d'Internet Explorer, navigation Web,... |
MSHTML.HTMLDocument | {25336920-03F9-11CF-8FD0-00AA00686F13} | Cet objet COM permet d'interagir avec des documents HTML, principalement utilisé dans Internet Explorer. |
MSXML2.DOMDocument | {F6D90F11-9C73-11D3-B32E-00C04F990BB4} | Cet objet COM permet la manipulation de documents XML, de son analyse et de sa transformation. |
PowerPoint.Application | {91493441-5A91-11CF-8700-00AA0060263B} | Cet objet COM permet l'automatisation de PowerPoint, création de présentations. |
Outlook.Application | {0006F03A-0000-0000-C000-000000000046} | Cet objet COM permet l'automatisation d'Outlook, gestion des courriels, contacts,... |
Scripting.FileSystemObject | {0D43FE01-F093-11CF-8940-00A0C9054228} | Cet objet COM permet la manipulation du système de fichiers (fichiers, dossiers,...). |
Scripting.Dictionary | {EE09B103-97E0-11CF-978F-00A02463E06F} | Cet objet COM permet l'entreposage de paires clef-valeur. |
SharePoint.Application | Cet objet COM permet l'automatisation de SharePoint,... | |
Shell.Application | {13709620-C279-11CE-A49E-444553540000} | Cet objet COM permet d'interagir avec l'interpréteur de commande Windows, automatiser des tâches de gestion de fichiers,... |
Shell32.Folder | {C298FD0B-5301-11D1-8E5E-00A0C92C9D5D} | Cet objet COM permet d'accéder à des dossiers spécifiques dans l'interpréteur de commande Windows. |
WbemScripting.SWbemLocator | {76A64158-CB41-11D1-8B02-00600806D9B6} | Cet objet COM permet d'accéder aux informations système, gérer les services Windows,... |
winmgmts | Cet objet COM permet de fournir un accès à WMI via une chaîne de caractères connexion. | |
Word.Application | {000209FF-0000-0000-C000-000000000046} | Cet objet COM permet l'automatisation de Word, création de documents,... |
Programmation
De nombreux langages de programmation intègrent des balises, unités, fonctions, des procédures ou des méthodes d'objets pour manipuler les objets COM de Windows, dont voici un bref tableau :
Langage de programmation | Balises, unités, procédures, fonctions, méthodes ou classes |
---|---|
ColdFusion | CFOBJECT, CREATEOBJECT... |
C# (C Sharp) | HttpServerUtility... |
Delphi | COMOBJ, ClassIDToProgID, CreateOleObject, ProgIDToClassID,... |
Free Pascal | COMOBJ, ClassIDToProgID, ProgIDToClassID,... |
PHP | COM, COM_ADDREF, COM_CREATE_GUID, COM_EVENT_SINK,... |
... | ... |
Exemple
L'exemple suivant, écrit en langage de programmation PHP, permet de connaitre la version de «Microsoft Word» installé si l'objet COM est autorisé :