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/