Einzelnen Beitrag anzeigen

Kyro

Registriert seit: 16. Aug 2005
Ort: Wien
45 Beiträge
 
Delphi XE2 Professional
 
#1

Problem bei eigenem "DownloadUI" im InternetExplor

  Alt 29. Okt 2007, 00:12
Ich versuche einen link des Internet Explorers abzufangen - klappt soweit auch ganz prima bis auf ein Problem.....
Hier einmal der code

Delphi-Quellcode:
function TIEDownloadManager.Download(pmk: IMoniker; pbc: IBindCtx;
  dwBindVerb: DWORD; grfBINDF: DWORD; pBindInfo: PBindInfo; pszHeaders,
  pszRedir: PWidechar; uiCP: UINT): HRESULT;
var
  Url: PWidechar;
begin
  pmk.GetDisplayName(pbc, nil, Url);
  Showmessage (URL);
  Result := E_NOTIMPL;
end;
MS Quelle

soweit so gut - Wenn ich im IE nun einen download starte bekomme ich eine message (mit der url als text) und der download startet wie gewohnt.
Das Problem dabei: Die DLL entlädt sich danach NICHT - und das verursacht bei einigen Downloadlinks Probleme (z.b.: Bei der MS Seite bleibt das DownloadFenster offen!)
Die Ursache im beispiel hier ist "Showmessage (URL);" - lasse ich das weg und schreibe den link z.b.: in eine Datei funktioniert alles prima - kann mir das einer erklären und mir eventuell ein workaround dazu geben?

Das Problem entsteht leider auch bi der verwendung von ShellExecute, ShellExecuteEx oder CreateProcess, welches ein App startet welches dann gleich einen UAC Dialog hervorruft.

Ich kanns mir nicht so ganz erklären warum die DLL geladen bleibt - ist bei IE6, IE7 - mit protected mode und ohne (XP und Vista)

Hab das ganze auch schon mit C++ nachgebildet - selbes Problem entweder vergesse ich da was freizugeben? oder ich weiss auch nicht.

Ich hoffe mir kann hier einer von den hier anwesenden klugen Köpfen weiterhelfen - sitze schon 2 Tage an diesem Problem und komm nicht weiter
  Mit Zitat antworten Zitat