|
8.12.15 com_event_sink()
Connecte des événements d'un objet COM sur un objet PHP
[ Exemples avec com_event_sink ] PHP 4 >= 4.2.3, PHP 5
bool
com_event_sink (
variant
comobject
,
object
sinkobject
,
mixed
sinkinterface
)
com_event_sink
connecte des événements de l'objet COM
comobject
sur un l'objet PHP
sinkobject
. PHP devrait être capable d'utiliser
le type par défaut de dispinterface spécifié par la Typelib associée avec l'objet
comobject
, mais vous pouvez changer cela en spécifiant
dans le paramètre
sinkinterface
le dispinterface que vous
souhaitez utiliser.
sinkobject
devra être une instance de la classe
avec des noms de méthodes suivant le dispinterface désiré ; vous devriez utilisé
com_print_typeinfo
pour l'aide à la génération d'un
gabarit de classe pour cela.
Soyez prudent sur l'utilisation de cette fonctionnalité ; si vous faîtes quelque chose de similaire
à l'exemple ci-dessous, cela n'a pas de sens de le lancer sur un serveur Web.
| Exemple de connexions d'événements COM |
<?php class IEEventSinker { var $terminated = false;
function ProgressChange($progress, $progressmax) { echo "Progression du téléchargement : $progress / $progressmax\n"; }
function DocumentComplete(&$dom, $url) { echo "Document $url terminé\n"; }
function OnQuit() { echo "Quitter!\n"; $this->terminated = true; } } $ie = new COM("InternetExplorer.Application"); // notez que vous n'avez pas besoin du & en PHP 5! $sink =& new IEEventSinker(); com_event_sink($ie, $sink, "DWebBrowserEvents2"); $ie->Visible = true; $ie->Navigate("http://www.php.net"); while(!$sink->terminated) { com_message_pump(4000); } $ie = null; ?>
|
Voir aussi
com_print_typeinfo
et
com_message_pump
.
|