Variant error from a VB com object used in Delphi

I am getting the following error on this code that use to work in version 5
but now crashes in version 6:

"...raised exception class EVariantArgError with message 'Invalid argument',
Process stopped. Use step or Run to continue.

procedure TMainForm.DisplayChanges(V : OleVariant);
type
  PArrayData = ^TArrayData;
  TArrayData = array[0..50, 0..2] of WideString;
  TData = array[0..0] of Variant;
var
  I : integer;
  P : PVarArray;
  PA: ^TArrayData;
  VA : Variant;
begin
    P := PVarArray(TVarData(V).VArray);
  try
    PA := VarArrayLock(V);     // this is where the error happens
  finally
    VarArrayUnlock(V);
  end;

  for I := 0 to P.Bounds[0].ElementCount - 1 do begin
    CDErrors.Cells[0, CDErrors.RowCount - 1] := CurrentPlanoName;
    CDErrors.Cells[1, CDErrors.RowCount - 1] := PA[I, 0];
    CDErrors.Cells[2, CDErrors.RowCount - 1] := PA[I, 1];
    CDErrors.Cells[5, CDErrors.RowCount - 1] := PA[I, 2];
    CDErrors.RowCount := CDErrors.RowCount + 1;
  end;

end;

The com object was created in vb.  V is a two dimensional Variant.

any help is appreciated.

thanks,