GDI objects
От: Alex Black Украина www.rs-creative.com
Дата: 26.03.06 13:49
Оценка:
Есть HANDLE на GDI обьект.
Нужно всю структуру этого обьекта сохранить в файл.
Потом загрузить из файла и снова забросить в память как GDI обьект и получить на него ссылку.

Помогите ПЛЗ.
Re: GDI objects
От: kero Россия  
Дата: 27.03.06 02:57
Оценка:
Здравствуйте, Alex Black, Вы писали:

AB>Есть HANDLE на GDI обьект.

AB>Нужно всю структуру этого обьекта сохранить в файл.
AB>Потом загрузить из файла и снова забросить в память как GDI обьект и получить на него ссылку.

AB>Помогите ПЛЗ.


Обратите внимание на GetObjectType
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re[2]: GDI objects
От: Alex Black Украина www.rs-creative.com
Дата: 27.03.06 16:11
Оценка:
Здравствуйте, kero, Вы писали:

K>Здравствуйте, Alex Black, Вы писали:


AB>>Есть HANDLE на GDI обьект.

AB>>Нужно всю структуру этого обьекта сохранить в файл.
AB>>Потом загрузить из файла и снова забросить в память как GDI обьект и получить на него ссылку.

AB>>Помогите ПЛЗ.


K>Обратите внимание на GetObjectType


Так точно. Обратил. Так я получил Бинар Обьекта.
А как проделать тоже в обратном направлении?
Re: GDI objects
От: Pavel Dvorkin Россия  
Дата: 28.03.06 01:02
Оценка:
Здравствуйте, Alex Black, Вы писали:

AB>Есть HANDLE на GDI обьект.

AB>Нужно всю структуру этого обьекта сохранить в файл.
AB>Потом загрузить из файла и снова забросить в память как GDI обьект и получить на него ссылку.

1. Никаких ссылок на эти объекты нет. Объекты находятся в ядре. Есть только дескрипторы.
2. В таком виде — задача не решается. Надо просто сохранить информацию об объекте, а потом воссоздать его.

GetObject — вернет LOG*, описывающий объект. Для всех объектов, кроме битовых карт и регионов, этого достаточно. По этой LOG* можно потом Create*Indirect
Для битовых карт надо еще сохранить саму картинку. В bmp-файл, к примеру.
With best regards
Pavel Dvorkin
Re[3]: GDI objects
От: kero Россия  
Дата: 28.03.06 03:34
Оценка:
K>>Обратите внимание на GetObjectType

AB>Так точно. Обратил. Так я получил Бинар Обьекта.

AB>А как проделать тоже в обратном направлении?

На всякий случай: имелось в виду именно GetObjectType (не GetObject).

Если Вы именно так и поняли и несмотря на жуткое количество (аж 14) разномастных структур GDI объектов говорите именно о произвольном Объекте, то Вам сюда:
Feng Yuan "Windows Graphic Programming" -> Chapter 3. GDI /DirectDraw Internal Data Structures (издавалось и на русском).

Хотя, вроде, можно и так, используя GetObjectType как переключатель:
1) Идентификатор типа -> соответствующая процедура записи в файл структуры + поля для сохранения идентификатора типа.
2) В обратном направлении: поле с идентификатором типа -> соответствующая процедура загрузки структуры из файла в память.
Т.е. остается определиться с API для каждого из типов объектов по отдельности. Поможет поиск RSDN, многое уже неоднократно обсуждалось.

Но, конечно, Фень Юань лучше
По всему, пашиным хозяевам позарез нужна война в Европе
(уверены — к ним не залетит, в предыдущих двух не залетало жеж)
Автор: kero
Дата: 21.07.14
Re: GDI objects
От: Denis_TST Россия www.transsys.ru
Дата: 28.03.06 18:19
Оценка:
Здравствуйте, Alex Black, Вы писали:

AB>Есть HANDLE на GDI обьект.

AB>Нужно всю структуру этого обьекта сохранить в файл.
AB>Потом загрузить из файла и снова забросить в память как GDI обьект и получить на него ссылку.
Можно еще сохранить в метафайл (наристовать что-нибудь), а затем попрпобовать этот метафайл распарсить . У Фень Юаня был пример .
... << RSDN@Home 1.2.0 alpha rev. 622>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.