Вверх ↑
Ответов: 2125
Рейтинг: 159
#1: 2008-01-21 15:54:04 ЛС | профиль | цитата
Опять понаписали

Galkov писал(а):
А фактический материал (шпионские наблюдения) такой:
после FImgCtx := CreateComObject появляется еще один поток, и невидимое окно в основном потоке с классом "Internet Explorer_Hidden" и нулевыми размерами

Что там делает новый поток, я не знаю, видимо следит за состоянием чего-либо. А вот окно "Internet Explorer_Hidden" это и есть то самое окно, которое вызывает наш Callback, в нашем основном потоке.
Я уже сто раз говорил, что IImgCtx это часть Internet Explorer-а, поэтому и написал про то, что он шлёт сам себе сообщения.

Galkov писал(а):
после FImgCtx.Load появляется еще один поток

Правильно, поток загрузки файла, и таких потоков может быть несколько, чтобы IE не ждал, пока очередная картинка загрузится, если она долго грузится. Как только поток загрузит файл, он берёт следующий из очереди на загрузку (типа там, картинки на страничке, и др. файлы).
Вот из этого потока и будет послано сообщение о конце загрузки файла, чтобы "Internet Explorer_Hidden" вызвал наш Callback.

Galkov писал(а):
tsdima, но ты позабыл открыть секрет использования event-а при ожидании с нулевым таймаутом
Это тем более актуально, что без обработки очереди ничего не дождешься

MSDN писал(а):
If dwMilliseconds is zero, the function tests the object's state and returns immediately


Galkov писал(а):
И второе, не подскажешь-таки, где про сей COM хоть чего-то прочитать можно

MSDN

------------ Дoбавленo:

Вот куча статей на эту тему: http://www.developing.ru/com/
Там, правда, довольно много воды...
карма: 1

0