summaryrefslogtreecommitdiff
path: root/ext/com/php_COM.h
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2002-05-21 18:58:11 +0000
committerWez Furlong <wez@php.net>2002-05-21 18:58:11 +0000
commite04d6ca9f7b0e553b1e978b31f0325ed048d5ea2 (patch)
tree91c56c40f0888392d45ecb52fd7b01b875fb80ea /ext/com/php_COM.h
parent8a6f6fca1d63eb15ba73b9a70fdb94938aa515e3 (diff)
downloadphp-git-e04d6ca9f7b0e553b1e978b31f0325ed048d5ea2.tar.gz
- Make sure that COM and VARIANT resources are returned as resources
rather than longs. - Make the IDispatch implementation a bit more generic (and fix my mess of pointers). - Add new com_message_pump() function that acts like an interruptible usleep() that processes COM calls/events. - Add new com_print_typeinfo() function for "decompiling" the typeinfo for an interface into PHP script. This is useful for generating a skeleton for use as an event sink. - Add new com_event_sink() function for sinking events from COM objects. Usage is like this: <?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; ?>
Diffstat (limited to 'ext/com/php_COM.h')
-rw-r--r--ext/com/php_COM.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/com/php_COM.h b/ext/com/php_COM.h
index 396df9c93c..d26441f6a3 100644
--- a/ext/com/php_COM.h
+++ b/ext/com/php_COM.h
@@ -18,6 +18,9 @@ PHP_FUNCTION(com_propget);
PHP_FUNCTION(com_propput);
PHP_FUNCTION(com_load_typelib);
PHP_FUNCTION(com_isenum);
+PHP_FUNCTION(com_event_sink);
+PHP_FUNCTION(com_message_pump);
+PHP_FUNCTION(com_print_typeinfo);
PHPAPI HRESULT php_COM_invoke(comval *obj, DISPID dispIdMember, WORD wFlags, DISPPARAMS FAR* pDispParams, VARIANT FAR* pVarResult, char **ErrString TSRMLS_DC);
PHPAPI HRESULT php_COM_get_ids_of_names(comval *obj, OLECHAR FAR* FAR* rgszNames, DISPID FAR* rgDispId TSRMLS_DC);
@@ -36,6 +39,7 @@ PHPAPI int php_COM_load_typelib(ITypeLib *TypeLib, int mode TSRMLS_DC);
/* dispatch.c */
PHPAPI IDispatch *php_COM_export_object(zval *val TSRMLS_DC);
+PHPAPI IDispatch *php_COM_export_as_sink(zval *val, GUID *sinkid, HashTable *id_to_name TSRMLS_DC);
int php_COM_dispatch_init(int module_number TSRMLS_DC);
zend_module_entry COM_module_entry;