COM_GET_ACTIVE_OBJECT |
COM : Demande l'objet actif |
PHP 5.0+ |
Syntaxe
function com_get_active_object($progid);
|
function com_get_active_object($progid, $code_page);
|
Paramètres
Nom |
Description |
$progid |
Ce paramètre permet d'indiquer l'identificateur de classe du programme (CLSID). |
$code_page |
Ce paramètre permet d'indiquer la page de code de la classe de programme. |
Retour
Valeur |
Description |
variable |
Ces valeurs permettent d'indiquer les valeurs retourner par l'objet COM. |
Description
Cette fonction permet de demander l'objet correspondant à l'objet actif dans la composante COM.
Remarques
- Accès aux objets COM existants : com_get_active_object permet de récupérer une référence vers une instance COM déjà lancée, évitant ainsi la création d'une
nouvelle instance. Cela est particulièrement utile pour interagir avec des applications en cours d'exécution, comme Microsoft Word ou Excel.
- Valeur de retour : Si l'objet spécifié est en cours d'exécution, la fonction retourne une référence à cet objet, permettant d'appeler ses méthodes et d'accéder à
ses propriétés comme avec toute autre instance COM.
- Gestion des erreurs : Si l'objet n'est pas en cours d'exécution, com_get_active_object génère une exception avec le code d'erreur MK_E_UNAVAILABLE. Il est
recommandé d'utiliser la méthode getCode de l'objet exception pour obtenir des informations détaillées sur l'erreur.
- Considérations pour les environnements Web : L'utilisation de com_get_active_object dans un contexte de serveur web est déconseillée. De nombreuses applications
COM/OLE, notamment Microsoft Office, ne sont pas conçues pour gérer plusieurs clients simultanément, ce qui peut entraîner des comportements inattendus.
- Comportement avec les serveurs Apache : Des observations ont montré que lorsque Apache est exécuté en tant que service sur Windows, com_get_active_object peut toujours
retourner MK_E_UNAVAILABLE, même si l'objet est présent dans la Running Object Table. En revanche, lorsque Apache est exécuté en mode console, la fonction retourne correctement la
référence à l'objet. Cela semble être un problème spécifique à Windows.
- Version de PHP : com_get_active_object est disponible depuis PHP 5 et est également présent dans les versions PHP 7 et 8. À partir de PHP 8.0.0, le paramètre
$codepage est devenu nullable, offrant plus de flexibilité dans son utilisation.
- Utilisation avec des applications Office : Lors de l'automatisation d'applications Office côté serveur, il est important de prendre en compte les recommandations
de Microsoft concernant l'automatisation côté serveur d'Office, car ces applications ne sont pas conçues pour une utilisation multi-utilisateurs simultanée.
Dernière mise à jour : Mercredi, le 25 mars 2015