VIII. Support COM pour Windows

Introduction

COM est une technologie qui permet la réutilisation de code écrit dans n'importe quel langage, en utilisant une convention d'appel standardisée, et un masquage des détails d'implémentations derrière des API (tels que le nom de la machine de stockage, ou le programme d'exécution). Elle peut être considérée comme un super mécanisme d'appel distant (Remote Procedure Call, RPC), avec des racines orientées objets. COM sépare l'implémentation de l'interface.

COM encourage le versionnage, la séparation de l'implémentation et de l'interface, et le masquage des détails d'implémentation, tels que le programme d'exécution ou le langage de programmation.

Pré-requis

Les fonctions COM sont uniquement disponibles sur les versions Windows de PHP. Elles ont été ajoutées à partir de PHP 4.0.

Installation

Il n'y pas d'installation nécessaire pour utiliser ces fonctions, elles font parties du coeur de PHP.

La version Windows de PHP dispose du support automatique de cette extension. Vous n'avez pas à ajouter de librairie supplémentaire pour disposer de ces fonctions.

Configuration à l'exécution

Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.

Tableau 1. Options de configuration

NomPar défautModifiable
com.allow_dcom"0"PHP_INI_SYSTEM
com.autoregister_typelib"0"PHP_INI_SYSTEM
com.autoregister_verbose"0"PHP_INI_SYSTEM
com.autoregister_casesensitive"1"PHP_INI_SYSTEM
com.typelib_file""PHP_INI_SYSTEM
Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à ini_set().

Constantes prédefinies

Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.

CLSCTX_INPROC_SERVER (entier)

CLSCTX_INPROC_HANDLER (entier)

CLSCTX_LOCAL_SERVER (entier)

CLSCTX_REMOTE_SERVER (entier)

CLSCTX_SERVER (entier)

CLSCTX_ALL (entier)

VT_NULL (entier)

VT_EMPTY (entier)

VT_UI1 (entier)

VT_I2 (entier)

VT_I4 (entier)

VT_R4 (entier)

VT_R8 (entier)

VT_BOOL (entier)

VT_ERROR (entier)

VT_CY (entier)

VT_DATE (entier)

VT_BSTR (entier)

VT_DECIMAL (entier)

VT_UNKNOWN (entier)

VT_DISPATCH (entier)

VT_VARIANT (entier)

VT_I1 (entier)

VT_UI2 (entier)

VT_UI4 (entier)

VT_INT (entier)

VT_UINT (entier)

VT_ARRAY (entier)

VT_BYREF (entier)

CP_ACP (entier)

CP_MACCP (entier)

CP_OEMCP (entier)

CP_UTF7 (entier)

CP_UTF8 (entier)

CP_SYMBOL (entier)

CP_THREAD_ACP (entier)

Voir aussi

Pour plus d'informations sur les objets COM, lisez les spécifications COM ou bien jetez un oeil au livre de Don Box (en anglais) : Yet Another COM Library (YACL).

Table des matières
COM -- Classe COM
variant -- classe VARIANT
com_addref --  Incrémente le compteur de références
com_get --  Lit la valeur d'une propriété d'un composant COM
com_invoke --  Appelle une méthode d'un composant
com_isenum -- Récupère un IEnumVariant
com_load_typelib -- Charge un Typelib
com_load --  Crée une référence sur un composant COM
com_propget --  Lit la valeur d'un propriété d'un composant COM
com_propput --  Modifie une propriété d'un composant COM
com_propset --  Modifie une propriété d'un composant COM
com_release --  Décrémente le compteur de références
com_set --  Modifie une propriété d'un composant COM