Description
bool 
com_event_sink ( variant comobject, object sinkobject [, mixed sinkinterface] )
     Instructs COM to sink events generated by
     comobject into the PHP object
     sinkobject.  PHP will attempt to use the default
     dispinterface type specified by the typelibrary associated with
     comobject, but you may override this choice by
     setting sinkinterface to the name of the
     dispinterface that you want to use.
    
     sinkobject should be an instance of a class with
     methods named after those of the desired dispinterface; you may use
     com_print_typeinfo() to help generate a template class
     for this purpose.
    
     Be careful how you use this feature; if you are doing something similar
     to the example below, then it doesn't really make sense to run it in a
     web server context.
    
| Example 1. COM event sink example | 
<?phpclass 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.php.net");
 while(!$sink->terminated) {
 com_message_pump(4000);
 }
 $ie = null;
 ?>
 | 
 | 
     See also com_print_typeinfo(),
     com_message_pump().