function GetCookie(host:
string):
string;
const
INTERNET_COOKIE_HTTPONLY = 8192;
var
hModule: THandle;
lp: Pointer;
InternetGetCookieEx:
function(lpszUrl, lpszCookieName, lpszCookieData
: PAnsiChar;
var lpdwSize: DWORD; dwFlags: DWORD; lpReserved: pointer)
: BOOL;
stdCall;
CookieSize: DWORD;
CookieData: PAnsiChar;
begin
LoadLibrary('
wininet.dll');
hModule := GetModuleHandle('
wininet.dll');
if hModule <> 0
then
begin
@InternetGetCookieEx := GetProcAddress(hModule, '
InternetGetCookieExA');
if @InternetGetCookieEx <>
nil then
begin
CookieSize := 1024;
Cookiedata := AllocMem(CookieSize);
if InternetGetCookieEx(PAnsiChar(AnsiString(host)),
nil, Cookiedata, CookieSize, INTERNET_COOKIE_HTTPONLY,
nil)
then
result:=cookiedata;
FreeMem(Cookiedata);
end;
end;
end;
procedure EmbeddedWB1DocumentComplete(ASender: TObject;
const pDisp: IDispatch;
var URL: OleVariant);
var
document: IHTMLDocument2;
cookies: TStringList;
uri: TIdURI;
begin
document := EmbeddedWB1.Document
as IHTMLDocument2;
cookies := TStringList.Create;
try
cookies.Delimiter:='
;';
//cookies.DelimitedText:=GetCookie(document.url);
cookies.DelimitedText:=document.cookie;
uri := TIdURI.Create(document.url);
try
IdCookieManager1.AddServerCookies(cookies,
uri);
EmbeddedWB1.LoadFromString(http.Get(document.url));
finally
uri.Free;
end;
finally
cookies.Free;
end;