#28161 [Fbk->Csd]: Fatal error when setting the value of COM object's Attribute property array
| From: | spymail at 21cn dot com | Date: | Thu, 29 Apr 2004 03:59:41 +0000 |
| Subject: | #28161 [Fbk->Csd]: Fatal error when setting the value of COM object's Attribute property array | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-58980@lists.php.net to get a copy of this message | ||
ID: 28161
User updated by: spymail at 21cn dot com
Reported By: spymail at 21cn dot com
-Status: Feedback
+Status: Closed
Bug Type: COM related
Operating System: Windows 2000 AS
PHP Version: 5.0.0RC2
New Comment:
Thanks,wez,
Well done.
It works pretty well in the latest CVS win32 bulid (Apr 29 2004
04:12:53).
Previous Comments:
------------------------------------------------------------------------
[2004-04-28 10:26:14] wez@php.net
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
I've just committed a fix for this; please try the next snapshot dated
after this comment and let me know how you get on.
See the commit message here:
http://news.php.net/article.php?group=php.cvs&article=27208
------------------------------------------------------------------------
[2004-04-27 04:35:21] spymail at 21cn dot com
Oh yes, I tried RC2 today, same output.
and here is the IDL:
[id(0x000007), propget, helpstring ("property Attribute")]
HRESULT Attribute([in] BSTR bstrName, [out, retval] BSTR* pVal);
[id(0x000007), propput, helpstring ("property Attribute")]
HRESULT Attribute([in] BSTR bstrName, [in] BSTR pVal);
------------------------------------------------------------------------
[2004-04-26 19:03:43] wez@php.net
Did you try RC2 ?
Can you please paste the IDL for the COM object here,
as I don't have that COM object to test against.
------------------------------------------------------------------------
[2004-04-26 18:00:47] spymail at 21cn dot com
Description:
------------
The COM runs well in ASP:
<%asp
'The Attribute property specifies and retrieves name-value pairs.
'
'Syntax:
'
'Header.Attribute(bstrName) = String
'String = Header.Attribute(bstrName)
'
'Parameters: bstrName [in] ,String containing the attribute name.
'
'Attribute names are case-sensitive, and both the name and value must
be specified in a valid 'XML format. If you duplicate an existing
attribute, the earlier attribute is updated.
Dim rid
rid = "0"
Set headobj = Server.CreateObject("Wmrmobjs.WMRMHeader")
headObj.Attribute("RID") = rid
%>
But when I convert it to PHP,there's a fatal error.
Reproduce code:
---------------
<?php
$rid=0;
$headObj = new COM("Wmrmobjs.WMRMHeader");
$headObj->Attribute["RID"] = $rid;
?>
Expected result:
----------------
The Attribute should be set.
Actual result:
--------------
There's a Error:
Fatal error: Uncaught exception 'com_exception' with message 'Error
Invalid
number of arguments' in D:\server\abc.php:3 Stack trace: #0 {main}
thrown in D:\server\abc.php on line 3
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=28161&edit=1