Commit Graph

91 Commits

Author SHA1 Message Date
Wez Furlong
0a18a9d744 A add much more useful select(2) implementation than is provided by
windows sockets.  The winsock implementation will only work with sockets;
our implementation works with sockets and file descriptors.
By association, stream_select() will now operate correctly with files, pipes and sockets.

This change required linking against the winsock2 library.  In terms of
compatibility, only older versions of windows 95 do not have winsock2
installed by default.  It is available as a redistributable file, and is most likely installed by any OS patches (eg: Internet Explorer) applied by the user.

Also, add a win32 compatible pipe test when opening a stream from a pipe.  This test will only work on NT, win2k and XP platforms.  Without this test, interleaved fread() and select() calls would cause the read buffer to be clobbered.  I will be working on a fix for this issue for win9x.
2003-02-16 03:48:49 +00:00
Wez Furlong
0c70df4907 fix rpc_error call 2003-02-10 23:22:49 +00:00
Harald Radi
5066caef31 a bunch of fixes 2003-02-10 20:59:11 +00:00
Wez Furlong
35639435c9 Error reporting clean up 2003-02-10 13:13:28 +00:00
Wez Furlong
b0894e7eba Error reporting leaks and cleanup 2003-02-10 12:33:15 +00:00
Wez Furlong
03e22793ff Fix various little leaks and segfaults.
Fix scripts like this:
$obj = new COM('Foo');
$obj2 = $obj->get_object();
$obj2->method();  // <-- would segfault here
2003-02-09 21:40:13 +00:00
Ilia Alshanetsky
3d8e54f3a2 Changed php_error to php_error_docref. 2003-01-19 00:45:53 +00:00
Sebastian Bergmann
b506f5c8f8 Bump year. 2002-12-31 16:08:15 +00:00
Derick Rethans
a88e5c6e8d - Remove \n from error messages 2002-11-10 21:24:54 +00:00
Harald Radi
cbe4f69663 - added a skeleton for new layers
- a bit cleanup
2002-07-19 16:19:00 +00:00
Harald Radi
c83f78dc96 ext/rpc/com should work now, but there's still lots of work left. 2002-07-18 18:31:37 +00:00
Harald Radi
acc1021f0d #forgot something 2002-05-30 23:17:48 +00:00
Harald Radi
d3ca5abab7 @ Added missing AddRef() calls in the COM extension. This should
@ fix weird behaviour (in particular with ADODB). (Harald)

# waah, this suxx
2002-05-30 23:07:23 +00:00
Wez Furlong
762effcf60 Add documentation comment for properties in com_print_typeinfo 2002-05-21 22:44:10 +00:00
Wez Furlong
fbf920d9a3 Enhance com_print_typeinfo.
The main expected use is like this, for figuring out what methods
are allowed for a COM object:

$ie = new COM("InternetExplorer.Application");
// Prints class definition for IE object
com_print_typeinfo($ie, "InternetExplorer.Application", false);
// Prints class definition for default IE event handler
com_print_typeinfo($ie, "InternetExplorer.Application", true);
2002-05-21 22:41:45 +00:00
Wez Furlong
8a53a89a94 Correct usage of convert_to_string_ex which is not allowed to zval* 2002-05-21 20:57:04 +00:00
Wez Furlong
c05834fbce Reformat some comments. 2002-05-21 20:51:31 +00:00
Wez Furlong
e2b9f0d964 Fix a flag, remove an old comment. 2002-05-21 20:46:08 +00:00
Wez Furlong
e04d6ca9f7 - 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;
?>
2002-05-21 18:58:11 +00:00
Harald Radi
e47a667cc9 integrating wez's patch 2002-05-20 15:35:57 +00:00
Wez Furlong
fc964e88d3 Added generic COM wrapper for PHP objects. 2002-05-20 01:31:48 +00:00
Harald Radi
fe84a29b3f remove temporary resources immediately
return value fix

#thanks to alan for 'remote debugging'
2002-05-02 13:37:31 +00:00
Harald Radi
e72caee650 RETURN_NULL() is defined with braces while RETURN_TRUE
and RETURN_FALSE are defined without.
seems not very consistent ?
2002-04-29 17:20:15 +00:00
Harald Radi
667a0841f3 functions returned FALSE in case of error and the oo api returned NULL.
make them both behave equal (return NULL, as FALSE can be a valid value).
2002-04-29 15:50:30 +00:00
Harald Radi
a380af2247 don't set CLSCTX_REMOTE_SERVER if NULL is passed as servername 2002-04-27 10:17:46 +00:00
Alan Brown
ad9f90a223 Missing break; causes fallthrough which actually causes heap corruption in the debugging version despite being just plain wrong. Also placed a default "Unavailable" message when the object does not populate the EXCEPINFO structure. Also removed a minor memory leak. 2002-04-18 01:56:29 +00:00
Harald Radi
3a1ebd4f51 @ fixed a bug that caused php to crash in php_COM_get_ids_of_names() (Harald, Paul) 2002-03-15 20:48:26 +00:00
Sebastian Bergmann
38933514e1 Update headers. 2001-12-11 15:32:16 +00:00
Hartmut Holzgraefe
41d93ca3fd proto fixes 2001-12-05 22:38:49 +00:00
Egon Schmid
90e15c04c9 Fixed two protos. 2001-12-02 09:29:09 +00:00
Alan Brown
8ee38d9d75 Not all components populate every field in the ExceptInfo structure. Thus we sometimes would try to convert NULL strings and see php_OLECHAR_to_char errors while displaying Exception information. This version is a little smarter about the member derefencing and the resulting error string. 2001-11-09 14:20:28 +00:00
Stig Bakken
689252082c * zend_module_entry change: apino, debug and zts are moved first,
see README.EXTENSIONS file for upgrade help.
@Introduced extension version numbers (Stig)
2001-10-11 23:33:59 +00:00
Harald Radi
d1199bd2c7 fixed Z_* conversion errors 2001-09-26 22:52:17 +00:00
Frank M. Kromann
448e9d49cc Fixing Win32 build... 2001-09-26 03:24:19 +00:00
Harald Radi
23c65b60a0 no message 2001-09-25 23:39:50 +00:00
Jeroen van Wolffelaar
c033288573 Back-substitute for Z_* macro's. If it breaks some extension (the script isn't optimal, it parses for example var->zval.value incorrect) please let me know. 2001-09-25 21:58:48 +00:00
Harald Radi
a491db4e2d removed VARIANT module and put the VARIANT class into
the COM module.
also fixed a few bugs.
2001-09-24 15:56:18 +00:00
Harald Radi
d1a2dbfd9d IDispatchs got released if they were passed to another component 2001-09-10 09:22:40 +00:00
Harald Radi
9a6fe9631e com_*() functions returned an oo-resource instead of an resource id,
thus subsequent com_*() calls to com-returnvalues failed.
2001-09-08 20:40:56 +00:00
Egon Schmid
8820474d4a Fixed some protos. 2001-09-04 21:46:27 +00:00
Harald Radi
3d0ab1236f hum, wasn't $foo->bar 's property type OE_IS_METHOD ? 2001-08-20 08:52:49 +00:00
Harald Radi
c674638dd0 removed CoInitialize() and CoUninitialize() 2001-08-15 10:39:59 +00:00
Harald Radi
ed126f68d5 fixed com_invoke retval 2001-08-14 13:38:36 +00:00
Zeev Suraski
eb52f75407 - Avoid using malloc()
- Improve and fix leaks in the typelib constants registration mechanism
2001-08-14 12:47:09 +00:00
Harald Radi
0fbbadbd2f fixed bug in com_load_typelib 2001-08-14 11:50:16 +00:00
Zeev Suraski
4b3dea31e6 Whitespace and API updates (please keep code in the repository in K&R style
like the CODING_STANDARDS ask, guys...)
2001-08-14 10:04:59 +00:00
Zeev Suraski
f09302da07 Add missing break 2001-08-14 09:55:22 +00:00
Alan Brown
292d27bf6a Whenever typelibrary constants were loaded, there was a GP Fault at process exit as shutdown_memory_manager seemed to delete constants that were supposed to have been deleted earlier. It seems as though CONST_PERSISTENT is a bad thing to use. Resetting that bit on the constant creation still seems to work and the GP Fault at exit is gone. 2001-08-14 03:52:32 +00:00
Harald Radi
c4022601e2 hresult is returned if no return type is specified 2001-08-14 00:48:15 +00:00
Harald Radi
d041982a9c make next() return a single value instead of an array with one element 2001-08-14 00:28:54 +00:00