ID: 26632 User updated by: Regis dot Derimay at iQvolution dot com Reported By: Regis dot Derimay at iQvolution dot com -Status: Feedback +Status: Open Bug Type: COM related Operating System: Windows XP Professional PHP Version: 5CVS New Comment:
Hi. try and catch does not work. It still crash. I will now try to reduce the source as much as possible to a few lines of codes so you can reproduce it. The source code of our module is not available but I could send you the needed dll, so you can test it. To which email should I send the dlls? Previous Comments: ------------------------------------------------------------------------ [2003-12-16 04:36:12] [EMAIL PROTECTED] Please try it without the reference flags: try { $x = new Variant(0.0); $y = new Variant(0.0); $z = new Variant(0.0); $sphere->getPosition($x, $y, $z, false); } catch (exception $e) { print_r($e); } If that doesn't work, can you please be more specific about what is going wrong (does it crash or does it throw an exception?). Please also include details about the "function that did not crash before (without the use of references)". Ideally, I want to be able to reproduce this on my machine here so I can debug it; is the component you are using publically available? (source preferred). ------------------------------------------------------------------------ [2003-12-16 03:57:34] Regis dot Derimay at iQvolution dot com No I was not. Now I tested it. It is still crashing, also in function in which it did not crash before (without use of references) ------------------------------------------------------------------------ [2003-12-16 03:07:48] [EMAIL PROTECTED] Please try using this CVS snapshot: http://snaps.php.net/php5-latest.tar.gz For Windows: http://snaps.php.net/win32/php5-win32-latest.zip Are you using the latest CVS snapshot..? ------------------------------------------------------------------------ [2003-12-16 03:04:47] Regis dot Derimay at iQvolution dot com I forgot to say, that PHP 5 is crashing with this example. ------------------------------------------------------------------------ [2003-12-15 12:18:09] Regis dot Derimay at iQvolution dot com Description: ------------ I call the following in PHP: $x = new VARIANT(0.0, VT_R8 | VT_BYREF); $y = new VARIANT(0.0, VT_R8 | VT_BYREF); $z = new VARIANT(0.0, VT_R8 | VT_BYREF); com_invoke($sphereIf, "getPosition", $x, $y, $z, false); The getPosition function is defined by: interface IiQSphereObjIf : IDispatch { [id(1), helpstring("method getPosition")] HRESULT getPosition([out] double* x, [out] double* y, [out] double* z, [in] VARIANT_BOOL globalTrafo, [out, retval] int* result); }; I get the following error code Warning: com_invoke(): Invoke() failed: Type mismatch. Argument: 2 in ...php It seems to be a problem with the COM module when using functions with paramaters by reference (like x, y and z here). When using normal parameters everything is working well. Expected result: ---------------- Having x y and z filed with the position. Actual result: -------------- I get the following error code Warning: com_invoke(): Invoke() failed: Type mismatch. Argument: 2 in ...php ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=26632&edit=1