Hi - I've been stuck on this for 12 hours now and run out of ideas.
Wondering if someone can help me?
My PHP page calls a COM object which is supposed to return some binary data
which is then sent back to the user. The problem I have is that once the
call to my COM object is done, PHP thinks the returned binary string is
actually 1/2 the size because it's interpreting it as wide characters.
I've tried returning both a BSTR and a VARIANT (Safearray of VT_UI1), and
both end up 1/2 size. Does anyone know if it's possible to have a com
object allocate say 128 bytes of data, and return it to PHP in a way that
128 bytes of data are written out to the requesting browser?
My php looks like this:
$inputBuf = "some data";
$myObject = new COM("BinarySource.BinarySourceObj");
$outputBuf = myObject->createBinaryData( $inputBuf ); // this object returns
128 *bytes* of data
print( $outputBuf ); // This sends out only 64 bytes!!
I've tried both of these for my COM object, and both result in 1/2 the # of
bytes sent:
HRESULT createBinaryData([in] BSTR source, [out, retval] BSTR*
outputBuffer);
HRESULT createBinaryData([in] BSTR source, [out, retval] VARIANT*
outputBuffer);
**NOTE: This COM object works if I use an ASP page and call ASP's
Response.BinaryWrite() function with the version that returns a VARIANT.
Any ideas??
Thank you!