downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

com_get_active_object> <com_create_guid
[edit] Last updated: Fri, 24 May 2013

view this page in

com_event_sink

(PHP 4 >= 4.2.0, PHP 5)

com_event_sinkConectar eventos de un objeto COM a un objeto PHP

Descripción

bool com_event_sink ( variant $comobject , object $sinkobject [, mixed $sinkinterface ] )

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

sinkobject deberí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 estableciendo sinkinterface al 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



add a note add a note User Contributed Notes com_event_sink - [1 notes]
up
0
fjortiz
7 years ago
In case someone needs a skeleton sink for ADODB.Connection events:

class ADOConnectionEventSink    {

    function BeginTransComplete( $translevel, $objerror, $status, $objconn )    {
        return 0;
    }

    function CommitTransComplete( $objerror, $status, $objconn )    {
        return 0;
    }

    function RolbackTransComplete( $objerror, $status, $objconn )    {
        return 0;
    }

    function WillConnect ( $ConnectionString, $userid, $psword, $options, $status, $objconn )    {
        return 0;
    }

    function ConnectComplete ( $objerror, $status, $objconn)    {
        return 0;
    }

    function Disconnect( $status, $objConn )    {
        return 0;
    }

    function WillExecute ( $src, $cursortyp, $locktyp, $options, $status, $objcomm, $objrs, $objconn )    {
        return 0;
    }

    function ExecuteComplete ( $recaffected, $objerror, $status, $objcomm, $objrs, $objconn )    {
        return 0;
    }

    function InfoMessage ( $objerror, $status, $objconn)    {
        return 0;
    }
}

// later on...
$db = new COM("ADODB.Connection", NULL, $charPage);
$sink = new ADOConnectionEventSink();
com_event_sink($db, $sink, "ConnectionEvents");
//...

 
show source | credits | stats | sitemap | contact | advertising | mirror sites