Bug #50305 [Opn->Asn]: DOTNET Warning
Edit report at https://bugs.php.net/bug.php?id=50305&edit=1
ID: 50305
Updated by: cmb@php.net
Reported by: noon at ms8 dot url dot com dot tw
Summary: DOTNET Warning
-Status: Open
+Status: Assigned
Type: Bug
Package: COM related
Operating System: Windows Vista
PHP Version: 5.3.1
-Assigned To:
+Assigned To: cmb
Block user comment: N
Private report: N
New Comment:
That COM object is supposed to implement IDispatch, but apparently
it does not; converting it to a PHP Variant (like in the attached
patch accept-LPUNKNOWN) would not solve the problem (while it
makes the OP's test script work, it still leaves a practically
unusable Controls object, because it only postpones the problem).
Previous Comments:
------------------------------------------------------------------------
[2013-10-18 02:41:42] eric at pby dot com
I'm not proficient enough in C to even compile PHP. Until this bug is fixed in a stable
release, is it possible to define a PHP class that mirrors the COM class and cast the object into
that class so that I can access its functions and properties?
------------------------------------------------------------------------
[2013-02-20 14:39:18] user at kkdf2 dot sakura dot ne dot jp
I've posted a patch.
I'm not sure whether it works well or not.
------------------------------------------------------------------------
[2011-01-14 08:40:11] kalle@php.net
This means that the variant conversion (as the error says) failed, 0xD is the variant type value of
the object being converted. 0xD evaluates to 13 which is VT_UNKNOWN, an object that implements the
IUnknown interface.
I however doubt theres anyone who will look at fixing this anytime soon as COM/dotnet needs an
active maintainer
------------------------------------------------------------------------
[2011-01-13 12:51:02] t33th4n at gmail dot com
Description:
------------
Error is valid.
Trying to create a dialog with .NET, but basic functions are failing to proceed.
Reproduce code:
---------------
$form1 = new DOTNET("System.Windows.Forms, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089", 'System.Windows.Forms.Form');
$button1 = new DOTNET("System.Windows.Forms, Version=1.0.5000.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089", 'System.Windows.Forms.Button');
$button1->Text = "Press me!";
$form1->Controls->Add($button1);
$form1->Show();
Expected result:
----------------
Add a button control to the form.
Actual result:
--------------
Warning: main(): variant->zval: conversion from 0xd ret=-1 in D:\xampplite\php\form1.php on line
10
PHP Fatal error: Call to a member function Add() on a non-object in D:\xampplite\php\form1.php on
line 10
------------------------------------------------------------------------
[2009-11-26 03:02:16] noon at ms8 dot url dot com dot tw
Description:
------------
runtime: .Net Framework 3.5
I need to add a button to a windows form.
When I run the script "$x->Control", it generates warning message as follows:
Warning: main(): variant->zval: conversion from 0xd ret=-1 in
C:\Windows\Microsoft.NET\Framework\v3.5\ofg.php
Reproduce code:
---------------
<?php
$x = new DOTNET('System.Windows.Forms, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089', 'System.Windows.Forms.Form', CP_UTF8);
$y = $x->Controls;
$x->showDialog();
?>
Expected result:
----------------
$y = $x->Controls;
^^^^ $y must be Object
Actual result:
--------------
Warning: main(): variant->zval: conversion from 0xd ret=-1 in
C:\Windows\Microsoft.NET\Framework\v3.5\ofg.php
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=50305&edit=1
Thread (6 messages)