ID: 42551
User updated by: csaba at alum dot mit dot edu
Reported By: csaba at alum dot mit dot edu
Status: Assigned
Bug Type: COM related
Operating System: Win XP Pro
PHP Version: 5.2.4
Assigned To: wharmby
New Comment:
There is another variant of this which crops up from time to time (I am
using version 5.2.6). Unfortunately, I cannot detect any pattern in
when it happens. It only happens with low frequency (around 2 percent
of the time), but when it happens my screen is filled with 31 error
warnings. The following line
$oFSO = new COM("Scripting.FileSystemObject");
will (sometimes) cause 31 warnings of the following type:
Warning: com::com(): Type library constant BinaryCompare is already
defined in C:\phpScripts\myScript.php on line 32
The specific list of constants it complains about is:
BinaryCompare TextCompare DatabaseCompare ForReading ForWriting
ForAppending TristateTrue TristateFalse TristateUseDefault TristateMixed
Normal ReadOnly Hidden System Volume Directory Archive Alias Compressed
UnknownType Removable Fixed Remote CDRom RamDisk WindowsFolder
SystemFolder TemporaryFolder StdIn StdOut StdErr
This has even happened when the script was the very first thing that I
ran after a reboot.
In any case, I would expect that if the value of the constants is the
same, then I not get the complaint.
Previous Comments:
------------------------------------------------------------------------
[2007-09-05 12:44:45] [email protected]
Assigned to the maintainer.
------------------------------------------------------------------------
[2007-09-04 21:13:55] csaba at alum dot mit dot edu
Description:
------------
When I attempt to do
$doc = new COM("HTMLFile");
this results in warnings that Type Library constants True and False are
already defined. Otherwise, the script runs fine.
The equivalent code as a .vbs file runs wihtout complaints
Csaba Gabor from Vienna
Reproduce code:
---------------
<?php
$doc = new COM("HTMLFile");
$win = $doc->parentWindow;
print ($doc->location . "\n");
$win->ExecScript(
"window.keepLooping=true");
$win->setTimeout (
"alert('timeout works');
window.keepLooping=false;", 2000);
while ($win->keepLooping)
com_message_pump(200);
print ("Done Looping");
?>
Expected result:
----------------
The only thing I expect to see printed is:
about:blank
Done Looping
Actual result:
--------------
Warning: com::com(): Type library constant True is already defined in
C:\test2.php on line 2
Warning: com::com(): Type library constant False is already defined in
C:\test2.php on line 2
about:blank
Done Looping
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=42551&edit=1