Einzelnen Beitrag anzeigen

Benutzerbild von HomerGER
HomerGER

Registriert seit: 8. Jun 2003
390 Beiträge
 
Delphi 7 Professional
 
#1

Speicher u. Handle Fehler beim löschen von Cookies,Verlauf

  Alt 11. Aug 2004, 10:00
Hallo
Ich nutze den Code aus der Code-Library um Cookies, Verläufe usw zu löschen
Delphi-Quellcode:
uses
  WinInet;

[...]

procedure TForm1.Cookies1Click(Sender: TObject);

var
  icei : PINTERNETCACHEENTRYINFO;
  dwSize : DWord;
  hSearch : DWord;

begin
  CheckListBox1.Items.BeginUpdate;
  CheckListBox1.Items.Clear;
  dwSize := 65536;
  icei := AllocMem(dwSize);
  try
    hSearch := FindFirstURLCacheEntry('visited:',icei^,dwSize);
    if hSearch = 0 then
    begin
      ShowMessage(SysErrorMessage(GetLastError)+' '+IntToStr(dwSize));
      exit;
    end;
    while hSearch <> 0 do
    begin
      Application.ProcessMessages;
      CheckListBox1.Items.Add(icei^.lpszSourceUrlName);
      dwSize := 65536;
      if not FindNextURLCacheEntry(hSearch,icei^,dwSize) then
      begin
        hSearch := 0;
      end;
    end;
  finally
    FreeMem(icei,65536);
    CheckListBox1.Items.EndUpdate;
  end;
end;


procedure TForm1.Lschen1Click(Sender: TObject);

var
  i : integer;

begin
  for i := 0 to CheckListBox1.Items.Count-1 do
  begin
    if CheckListBox1.Checked[i] then
    begin
      DeleteURLCacheEntry(PChar(CheckListBox1.Items[i]));
    end;
  end;
  Cookies1.Click;
end;
Wenn aber (wie ich glaube) sehr viele Cookies, Verläufe usw vorhanden sind
kommt die Fehlermeldung Systemressourcen erschöft, falscher Parameter und Handle falsch

liegt das jetzt an dwSize := 65536 ist der zu klein bemessen?
muß ich den grösser setzen oder kann ich ihn so setzen das er sich nimmt was er braucht.
Oder wie gross darf der den max. sein?

Homer
  Mit Zitat antworten Zitat