On Thu, Jun 9, 2011 at 11:26 AM, Marcos Douglas <m...@delfire.net> wrote: > > Hi, > How I can a return "array of byte" from a COM object and put in a Stream? > I use a OleVariant variable to get the return. But I can not convert > in a string (the return is a XML).
I did using this function: procedure VariantToStream(const V: OleVariant; const Stream: TStream); var P: Pointer; L: Integer; begin Assert(VarType(V) = varByte or varArray); Assert(VarArrayDimCount(V) = 1); L := VarArrayHighBound(V, 1) - VarArrayLowBound(V, 1) + 1; Stream.Size := L; Stream.Position := 0; P := VarArrayLock(V); try Stream.Write(P^, Stream.Size); finally VarArrayUnlock(V); end; end; Marcos Douglas _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal