COM et .Net (Windows)

Introduction

COM est un acronyme pour Component Object Model; c'est une couche orientĂ©e objet (et services associĂ©s) au-dessus de DCE RPC (un standard ouvert) qui dĂ©finit une convention de nommage commune permettant Ă  un code Ă©crit en n'importe quel langage de communiquer avec du code Ă©crit dans un autre langage, pour peu que ces deux langages soient compatibles avec COM. Les codes n'ont pas besoin de faire partie du mĂȘme exĂ©cutable. Le code peut ĂȘtre chargĂ© Ă  partir d'une DLL, trouvĂ© dans un autre processus fonctionnant sur le mĂȘme serveur, ou, avec DCOM (Distributed COM), trouvĂ© sur une machine distante, sans mĂȘme que le code ait Ă  savoir oĂč il se trouve.

Il y a une partie de COM connue sous le nom d'OLE Automation qui comprend un jeu d'interfaces COM qui permettent une liaison lĂąche avec les objets COM, afin qu'ils puissent ĂȘtre introspectĂ©s et appelĂ©s en cours d'exĂ©cution sans savoir au moment de la compilation comment l'objet fonctionne. L'extension COM de PHP utilise les interfaces OLE Automation pour permettre de crĂ©er et appeler des objets compatibles depuis les scripts. Techniquement parlant, cela devrait vraiment s'appeler "the OLE Automation Extension for PHP", puisque tous les objets COM ne sont pas forcĂ©ment compatibles OLE.

Maintenant, pourquoi vouloir ou devoir utiliser COM ? COM est l'une des méthodes les plus utilisées pour faire communiquer des applications et des composants sur les plates-formes Windows. En utilisant COM, il est possible d'ouvrir un document Microsoft Word, remplir un fichier de gabarit et le sauvegarder pour l'envoyer par courrier au visiteur. Il est aussi possible d'utiliser COM pour effectuer des tùches administratives sur le réseau et configurer IIS ; ce ne sont que les utilisations les plus habituelles, il est possible de faire beaucoup plus avec COM.

De plus, nous supportons l'instanciation et la création d'assemblages .Net utilisant une couche d'interopérabilité COM fournie par Microsoft.

add a note

User Contributed Notes 1 note

up
5
acsandeep at gmail dot com ¶
17 years ago
If you are trying to get the properties of a Word document opened via COM object, you may need to define some constants in your script like so.

<?php
define('wdPropertyTitle', 1);
define('wdPropertySubject', 2);
define('wdPropertyAuthor', 3);
define('wdPropertyKeywords', 4);
define('wdPropertyComments', 5);
define('wdPropertyTemplate', 6);
define('wdPropertyLastAuthor', 7);

$word = new COM("word.application") or die ("Could not initialise MS Word object.");
$word->Documents->Open(realpath("Sample.doc"));
$Author = $word->ActiveDocument->BuiltInDocumentProperties(wdPropertyAuthor);

echo $Author;
?>