Hi All,

I am attempting to write a COM interface for the TStream object, but I am
currently running into a problem. The current issue that I am facing is with
my CopyFrom method which I have pasted below. 

The problem that I have is that when the method completes it raises an
access violation (basically right on the 'end;' line). I can however
confirm  that the copying of the stream does occur successfully. 

If anyone has any ideas on what is wrong with my CopyFrom method any help is
appreciated. I also found if I don't call the 
"Source.ReadBuffer(Buffer^, N);" line the error will not occur.

Ben Vaughan
================================
Systems Architect
Business Education Online
University of Auckland
================================
Old Choral Hall, 7 Symonds St, Auckland
(P) +64 9 3737599 x2514 (F) +64 9 3737430


function TMyStream.CopyFrom(const Source: IMyStream; Count: Integer):
Integer;
const
  MaxBufSize = $F000;
var
  BufSize, N: Integer;
  Buffer: POleVariant1;
begin
  if Count = 0 then
  begin
    Source.Position := 0;
    Count := Source.Size;
  end;
  Result := Count;
  if Count > MaxBufSize then BufSize := MaxBufSize else BufSize := Count;
  GetMem(Buffer, BufSize);
  try
    while Count <> 0 do
    begin
      if Count > BufSize then N := BufSize else N := Count;
      Source.ReadBuffer(Buffer^, N);
      WriteBuffer(Buffer^, N);
      Dec(Count, N);
    end;
  finally
    FreeMem(Buffer, BufSize);
  end;
end;

procedure TMyStream.ReadBuffer(var Buffer: OleVariant; Count: Integer);
begin
  fStream.ReadBuffer(Buffer,Count);
end;

procedure TMyStream.WriteBuffer(var Buffer: OleVariant; Count: Integer);
begin
  fStream.WriteBuffer(Buffer,Count);
end;

---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz
To UnSub, send email to: [EMAIL PROTECTED] 
with body of "unsubscribe delphi"
Web Archive at: http://www.mail-archive.com/delphi%40delphi.org.nz/

Reply via email to