Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Вопрос по IHTMLDocument2


Автор: Sergey1974 13.7.2011, 23:00
Доброго времени суток. Есть такой код:

Код

CoInitialize(nil)
HTML := CoHTMLDocument.Create as IHTMLDocument2;
CurrentFile := Files[I];
Synchronize(UpdateProgress);
try
   Content := TStringStream.Create;  
   Content.LoadFromFile(Files[I]);
   V := VarArrayCreate([0, 0], varVariant);
   V[0] := Content.DataString;
   HTML.Write(PSafeArray(TVarData(V).VArray)); <-- Проблема в этой строке
finally
   Content.Free;
end;


Если этот код выполнять в основном потоке, то проблем нет. Если запихнуть его в другой поток и выполнять параллельно основному, то выпадает сообщение "The page not found, sorry". Сломал голову. Где грабли?

Все, разобрался. Оказывается, это сообщение выдавал JavaScript на странице. Чтобы этого избежать, сделал так:

Код

CoInitialize(nil)
HTML := CoHTMLDocument.Create as IHTMLDocument2;
// Добавлена срока ниже
FHTML.designMode := 'On';    
CurrentFile := Files[I];
Synchronize(UpdateProgress);
try
   Content := TStringStream.Create;  
   Content.LoadFromFile(Files[I]);
   V := VarArrayCreate([0, 0], varVariant);
   V[0] := Content.DataString;
   HTML.Write(PSafeArray(TVarData(V).VArray)); <-- Проблема в этой строке
finally
   Content.Free;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)