(PHP 4 >= 4.2.0, PHP 5, PHP 7)
com_event_sink — Connecte des événements d'un objet COM sur un objet PHP
Connecte des événements de l'objet COM
comobject
sur un l'objet PHP
sinkobject
.
Soyez prudent sur l'utilisation de cette fonctionnalité ; si vous faites quelque chose de similaire à l'exemple ci-dessous, cela n'a pas de sens de le lancer sur un serveur Web.
comobject
sinkobject
sinkobject
devra être une instance de la classe
avec des noms de méthodes suivant le dispinterface désiré ; vous devriez
utiliser com_print_typeinfo() pour l'aide à la
génération d'un gabarit de classe pour cela.
sinkinterface
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.
Cette fonction retourne TRUE
en cas de
succès ou FALSE
si une erreur survient.
Exemple #1 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 "Quit!\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.example.org");
while(!$sink->terminated) {
com_message_pump(4000);
}
$ie = null;
?>