Fatal error when setting the value of COM object's Attribute property array
| Bug #28161 | Fatal error when setting the value of COM object's Attribute property array | ||||
|---|---|---|---|---|---|
| Submitted: | 2004-04-26 18:00 UTC | Modified: | 2004-04-29 05:59 UTC | ||
| From: | spymail at 21cn dot com | Assigned: | |||
| Status: | Closed | Package: | COM related | ||
| PHP Version: | 5.0.0RC2 | OS: | Windows 2000 AS | ||
| Private report: | No | CVE-ID: | None | ||
[2004-04-26 18:00 UTC] 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
Patches
Pull Requests
History
AllCommentsChangesGit/SVN commits
[2004-04-26 19:03 UTC] wez@php.net
[2004-04-27 04:35 UTC] 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-29 05:59 UTC] spymail at 21cn dot com