Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26151
Рейтинг: 2127
#46: 2008-01-21 15:20:55 ЛС | профиль | цитата
Galkov писал(а):
Не заниматься мультипроцессорностью

Да не хочу я ей заниматься (одного хватило). Думал максимально автоматизировать, вот и все, что бы вопросов было меньше.

Galkov писал(а):
если ему известны sz.cx и sz.cy
Это значит их надо сделать переменными, я так понимаю?

Про QueryInterface,AddRef,Release я нашел только, что наш метод CreateComObject имеет destructor, где он и отсоединяется. И нашел, так же, что на каждый объект должен быть свой экземпляр класса, те надо постоянно его отсоединять и присоединять снова к другому объекту, предварительно отсоединив связи методом Release. Но вот как использовать правильно QueryInterface я ничерта не понял? Я нашел, что QueryInterface дает Handle объекта, но что, в данном случае, является объектом, мне непонятно.


карма: 22

0
Ответов: 9906
Рейтинг: 351
#47: 2008-01-21 15:30:12 ЛС | профиль | цитата
nesco писал(а):
Это значит их надо сделать переменными

А они у тебя какие, постоянные - что ли

nesco, я же не дед мороз, блин, и не знаю всего настолько, чтобы реагировать на мысли вслух
Трудись...
Сказал, что "прекрасно", вот и делай -- прекрасным

карма: 9

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#48: 2008-01-21 15:31:38 ЛС | профиль | цитата
Galkov писал(а):
А они у тебя какие, постоянные - что ли
Но они переменные внутри, но не доступны для внешнего применения. Я имел ввиду, что сделать отдельные точки под них. Тут я сам виноват, думал поймешь...
карма: 22

0
Ответов: 9906
Рейтинг: 351
#49: 2008-01-21 15:33:59 ЛС | профиль | цитата
nesco писал(а):
что сделать отдельные точки под них.

А какие тут вообще могут быть вопросы, тоже не понимаю
Нижняя точка не добавляет ни одного байта кода тому, кто ее не использует
карма: 9

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#50: 2008-01-21 15:44:21 ЛС | профиль | цитата
Galkov писал(а):
Нижняя точка не добавляет ни одного байта кода тому, кто ее не использует
Насчет точек вопрос исчерпан.

А по методам COM-объекта что-нибудь можешь подсказать?
карма: 22

0
Ответов: 2125
Рейтинг: 159
#51: 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
Ответов: 9906
Рейтинг: 351
#52: 2008-01-21 20:18:04 ЛС | профиль | цитата
tsdima писал(а):
А вот окно "Internet Explorer_Hidden" это и есть то самое окно, которое вызывает наш Callback

Слать можно двумя макарами (Send и Post)
Так Send из того же потока, не требует обработчика сообщений
Из чужого потока - требует, как и Post из любого
Это я к тому, что "шлет сам себе" - ни о чем не говорит еще.
Окно-то именно в своем потоке. Добрая половина KOL-а сама себе сообщения шлет, и ничего при этом не требует

Но естественно, обсуждать тут нечего: это форсмажор (обстоятельства непреодолимой силы), а каким образом он достигается - да большой разницы и нет.
Главное, чего я не понимал исходно - принципиальное наличие способа "посылать" из другого потока
А слово "Internet Explorer" - тоже ни о чем окончательно не говорит, не всякий COM есть окно, наверное...
Говорит - реальный факт наличия окна
Но скользкое место (почему мне это и не нравилось) осталось - пойманное wm_close

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

Это я знаю, как и то, что это не вся правда.
Остаток выделенного кванта времени все-таки пропадает, и форсируется переключение на другой поток...
Если только это, тогда вопросов (которые задаются из принципа, сто лучше спросить, чем быть "уверенным", что знаешь все) нет вроде...

tsdima писал(а):
MSDN

MSDN - шибко умная штука (у меня по крайней мере)
Пока ТОЧНУЮ фразу для поиска не задашь, фиг чего покажет
частично - не прокатывает
Типа - недостоин, и все
Так как искать лучше
------------ Дoбавленo:

Я имел в виду этот конкретный COM
С наличием общей теории - проблем нет
Есть проблемы с наличием времени: Рихтер освоен не до конца. Дракон - в большей степени, но практики с Flex/Bison пока маловато...
А есть еще CocoR...
Действительно - COM/OLE еще и не тронуты (так - азы)

В общем, чем дальше в лес, тем толще партизаны..

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

tsdima писал(а):
это и есть то самое окно, которое вызывает наш Callback, в нашем основном потоке

Блин, не поленился -- проверил
Действительно, поток ТОТ ЖЕ САМЫЙ.
Тем более, Event -- совершенно не в тему
карма: 9

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#53: 2008-01-22 01:31:18 ЛС | профиль | цитата
Выложил на SVN новый релиз.

Для особо продвинутых пользователей введена поддержка пользовательской отрисовки Draw, но старый режим Scale я оставил для широкого применения. Все это реализовано свойством DrawStyle. Добавлены две нижние точки размера загруженной картинки ImageWidth и ImageHeight
карма: 22

0
Ответов: 278
Рейтинг: 4
#54: 2008-01-23 22:53:03 ЛС | профиль | цитата
nesco, не достаточно насквозь понимаю для чего нужен этот компонент?
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#55: 2008-01-24 02:15:22 ЛС | профиль | цитата
Vanchila, попробуй прочитай *.png или *.tif, а затем отрисуй прозрачными, я на тебя посмотрю. При его размерах он читает и отрисовывает все, что читает IE выше 4-го, притом, поддерживая полную прозрачность.
карма: 22

0
Ответов: 278
Рейтинг: 4
#56: 2008-01-24 13:35:14 ЛС | профиль | цитата
nesco,
карма: 0
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26151
Рейтинг: 2127
#57: 2008-01-24 16:36:39 ЛС | профиль | цитата
Vanchila, и к чему бы это?
------------ Дoбавленo:

Vanchila, вот ты пытался что-то сказать или спросить, но я не слышу, почему-то, ничего
карма: 22

0
Ответов: 9906
Рейтинг: 351
#58: 2008-01-25 11:53:22 ЛС | профиль | цитата
nesco, так я не слышу ответа, на поставленный выше вопрос
Galkov писал(а):
Правильно ли я понял из написанных слов, что у тебя коэффициент масштабирования зависит от положения вывода картинки
Не говоря уже о том КАК он это делает.
И при этом, Point1 не может содержать отрицательных координат

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

И второй вопрос есть: COM предоставляет возможность вывести часть картинки, а элемент - НЕТ
Пример: в компиляторе fasm в examples есть прожка DDRAW. Она имеет один одноименный gif, который содержит фоновую картинку, и 60 штук маленьких - кадры крутящегося бублика.
Можешь посмотреть
И как с ними работать
Через COM - запросто, через элемент - НЕТ
карма: 9

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#59: 2008-01-25 12:35:51 ЛС | профиль | цитата
Galkov, я специально сделал режим Draw, без масштабирования, те "как есть", по-умолчанию в свойствах стоит Stretch, но можно переключиьтся на Draw. C анимированной картинкой я не пробовал эксперименты проводить. Попробую посмотреть, может чего и получится.
Вообще-то, изначально такой задачи не стояло -- отображать анимированные GIF. Тут можно твоей цитатой сказать -- чем дальше в лес, тем..., дальше сам знаешь
------------ Дoбавленo:

Galkov, слушай, а нет у меня это примера (DDRAW), и на SVN его нет, и в новом пакете FASM его нет.
карма: 22

0
Ответов: 9906
Рейтинг: 351
#60: 2008-01-25 12:43:56 ЛС | профиль | цитата
nesco, ты читать УМЕЕШЬ, блин, или нет
Galkov писал(а):
коэффициент масштабирования ЗАВИСИТ от положения вывода картинки

Galkov писал(а):
И при этом, Point1 не может содержать ОТРИЦАТЕЛЬНЫХ координат


nesco писал(а):
Вообще-то, изначально такой задачи не стояло -- отображать анимированные GIF

Вообще-то, он НЕ АНИМИРОВАННЫЙ
Хотя я сомневаюсь, что этот COM не умеет читать и анимированные

А задача стояла пристая, и типовая до предела: донести возможности COM-объекета, откопанного tsdima (не говорящего, правда - где) до пользователя.
------------ Дoбавленo:

Вот, это не мой gif, это не мои буйные фантазии. но так работают многие - это уж точно

карма: 9

0
файлы: 1ddraw.gif [57.3KB] [383]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)