|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2015-01-08 23:55 UTC] ajf@php.net
-Package: Feature/Change Request
+Package: COM related
[2019-10-18 11:43 UTC] girgias@php.net
-PHP Version: 5.0.5
+PHP Version: Next Minor Version
-Assigned To:
+Assigned To: cmb
[2019-10-18 11:43 UTC] girgias@php.net
[2019-12-16 08:55 UTC] cmb@php.net
-Status: Assigned
+Status: Feedback
[2019-12-16 08:55 UTC] cmb@php.net
[2019-12-29 04:22 UTC] php-bugs at lists dot php dot net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Tue Oct 28 06:00:01 2025 UTC |
Description: ------------ In visual basic it is possible to declare a variable as a pointer to a certain type of object, but not instanciate it yet. I have run into a problem using a 3rd party COM library, where it is neccessary to pass such an empty pointer by ref to a method, in order to get an instance or another class. Reproduce code: --------------- // This code is not real, it's just to illustrate the problem: $factory = new COM('Example.Factory'); // Here we have several options, none of which work: $product = new VARIANT; $product = new COM('Example.Product'); variant_set_type($product, VT_EMPTY); // Whatever I have done in the previous lines, this method fails. If it gets an instance of an instance of an object - it fails. If it gets anything that is not of type Example.Product, it fails. $factory->Create_Product($product); Expected result: ---------------- Here is the "equivalent" VB code that works: Dim objFactory As Example.Factory Dim objProduct As Example.Product // Any of these would fail: Dim objProduct As New Example.Product Dim objProduct As Variant Sub Main() Set objFactory = new Example.Factory objFactory.Create_Product(objProduct) End Sub Actual result: -------------- The Create_Product method will fail if it does not recieve the equivalent of the line: "Dim objProduct As Example.Product". Which as far as I can understand, is not possible to supply it with at this point.