wez Sat Jan 4 07:18:24 2003 EDT
Modified files:
/phpdoc/en/faq com.xml
Log:
Added the text from my commit message about how to sink (handle) COM events.
Index: phpdoc/en/faq/com.xml
diff -u phpdoc/en/faq/com.xml:1.9 phpdoc/en/faq/com.xml:1.10
--- phpdoc/en/faq/com.xml:1.9 Mon Apr 29 08:05:52 2002
+++ phpdoc/en/faq/com.xml Sat Jan 4 07:18:22 2003
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="iso-8859-1"?>
-<!-- $Revision: 1.9 $ -->
+<!-- $Revision: 1.10 $ -->
<chapter id="faq.com">
<title>PHP and COM</title>
<titleabbrev>PHP and COM</titleabbrev>
@@ -201,7 +201,44 @@
</question>
<answer>
<para>
- Not yet.
+ Starting in PHP 4.3.0, you can define an event sink and bind it as shown
+ in the example below. You can use <function>com_print_typeinfo</function>
+ to have PHP generate a skeleton for the event sink class.
+
+ <example>
+ <title>COM event sink example</title>
+ <programlisting role="php">
+<![CDATA[
+<?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");
+$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;
+?>
+]]>
+ </programlisting>
+ </example>
</para>
</answer>
</qandaentry>
--
PHP Documentation Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php