How to pass an array of bytes reference to a COM object method
Asked Answered
C

0

1

In PHP, I want to pass an array of bytes reference to a COM object method whose syntax in VB is:

object.VBObjectMethod(ByRef aRawData() As Byte)

where parameter aRawData is an array of bytes that specifies a data object.

In PHP I am initialising the COM class and calling VBObjectMethod as follows:

$theObject = new COM("VBObject.Class") or die ("Could not initialise VBObjectClass");

Up to this bit things are OK but I have no idea how to do the following correctly:

$theObject->VBObjectMethod("How do I pass a reference to a byte array here?");

I have a $byteArray I am passing to VBObjectMethod in PHP as follows;

$theObject->VBObjectMethod($byteArray);

But, I get the following Fatal error message:

Fatal error: Uncaught exception 'com_exception' with message 'Source: VBObject.Class
Description: Bad variable type.' in C:\xampp\htdocs\waterCompany\reservoir.php:3 Stack trace #0 C:\xampp\htdocs\waterCompany\reservoir.php(3): com->VBObjectMethod(Array)#1 {main} thrown in C:\xampp\htdocs\waterCompany\reservoir.php on line 3C:\xampp\htdocs\waterCompany\reservoir.php on line 3

Coly answered 12/2, 2017 at 15:12 Comment(4)
maybe interesting? Pass a PHP Variant object? VARIANT class Also, #35596990?Gaud
A PHP array is not the same as a VB array. Please show how arawData() is defined in VB.Sweltering
@Sweltering aRawData is an array of bytes that specifies a data object. It is the parameter that is passed in VBObjectMethod. That is how data should be passed in that method in VB. I am trying to pass byte array data to VBObjectMethod in Php. In VB I did so with a lot if ease but in Php I am stuck.Coly
@Ryan Vincent that question link you shared and this other one here #3687124 seem to edge me closer but I am still yet to figure out how to do it. I have tried the following without success $theObject->VBObjectMethod(new VARIANT($byteArray, VT_ARRAY)); $theObject->VBObjectMethod(new VARIANT($byteArray, VT_UI1)); $theObject->VBObjectMethod(new VARIANT($byteArray, VT_ARRAY | VT_UI1));Coly

© 2022 - 2024 — McMap. All rights reserved.