From e04d6ca9f7b0e553b1e978b31f0325ed048d5ea2 Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Tue, 21 May 2002 18:58:11 +0000 Subject: - 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: 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; ?> --- ext/com/php_COM.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'ext/com/php_COM.h') 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; -- cgit v1.2.1