com_event_sink
(PHP 4 >= 4.2.0, PHP 5)
com_event_sink — Conectar eventos de un objeto COM a un objeto PHP
Descripción
Ordena a COM que eventos generados por
comobject sean absorbidos por el objeto PHP
sinkobject.
Tenga cuidado en cómo use esta característica; si está haciendo algo similar al ejemplo de abajo, no tiene sentido ejecutarla en un contexto de servidor web.
Parámetros
-
comobject -
-
sinkobject -
sinkobjectdebería ser una instancia de una clase con métodos nombrados después de aquellos de la dispinterfaz deseada; se puede usar com_print_typeinfo() para ayudar a generar una clase plantilla para este propósito. -
sinkinterface -
PHP intentará usar el tipo de dispinterfaz predeterminado especificado por la biblioteca de tipos asociada con
comobject, pero se puede sobrescribir esta opción estableciendosinkinterfaceal nombre de la dispinterfaz que se desea usar.
Valores devueltos
Devuelve TRUE en caso de éxito o FALSE en caso de error.
Ejemplos
Ejemplo #1 Ejemplo de absorción de un evento COM
<?php
class IEEventSinker {
var $terminated = false;
function ProgressChange($progress, $progressmax) {
echo "Download progress: $progress / $progressmax\n";
}
function DocumentComplete(&$dom, $url) {
echo "Document $url complete\n";
}
function OnQuit() {
echo "Quit!\n";
$this->terminated = true;
}
}
$ie = new COM("InternetExplorer.Application");
// note that you don't need the & for 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;
?>
Ver también
- com_print_typeinfo() - Imprime una definición de clase de PHP para una interfaz despachable
- com_message_pump() - Procesar mensajes COM, durmiendo hata timeoutms milisegundos