|
Последние активные темы форума |
|
com_event_sink
(PHP 4 >= 4.2.3, PHP 5) com_event_sink --
Connect events from a COM object to a PHP object
Descriptionbool 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.
Пример 1. COM event sink example
<?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.php.net"
);
while(!
$sink
->
terminated
) {
com_message_pump
(
4000
);
}
$ie
=
null
;
?>
|
|
Смотрите также com_print_typeinfo(),
com_message_pump().
|