核心提示:procedure TPostForm.WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; var URL, Fl...
procedure TPostForm.WebBrowser1BeforeNavigate2(ASender: TObject; const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData, Headers: OleVariant; var Cancel: WordBool) ;function OleVariantToMemoryStream(OV: OleVariant): TMemoryStream;
var
Data: PByteArray;
Size: integer;
begin
Result := TMemoryStream.Create;
try
Size := VarArrayHighBound (OV, 1) - VarArrayLowBound(OV, 1) + 1;
Data := VarArrayLock(OV) ;
try
Result.Position := 0;
Result.WriteBuffer(Data^, Size) ;
finally
VarArrayUnlock(OV) ;
end;
except
Result.Free;
Result := nil;
end;
end;
var
ms: TMemoryStream;
ss: TStringStream;
begin
ss := TStringStream.Create('') ;
try
if Length(PostData) > 0 then
begin
ms := OleVariantToMemoryStream(PostData) ;
ms.Position := 0;
ss.CopyFrom(ms, ms.size) ;
ss.Position := 0;
ShowMessage('HEADER:' + Headers + #13#10#13#10 + ss.DataString) ;
end;
finally
ss.Free;
end;
end;