PDA

Показать полную графическую версию : Для чего COM компанентам, в частности, ActiveX нужен реестр,


Sharkky
22-09-2003, 07:47
Я могу вспомнить, из когда-то прочитанного, только такую проблему, которую решает GUID: существует
возможность, что разные разработчики будут использовать одинаковые имена для своих классов и интерфейсов. С целью
этого избежать каждому COM объекту выдаётся свой номер.

Собственно, вопрос: 1. Если я хочу использовать ActiveX элемент в своей программке, и при этом хочу, чтобы
она работала без инсталяции, можно ли этого достичь?
Мне кажеться это возможным, потому что, по моим представлениям, COM использует реестр, только для
регистрации GUID'ов. А если я знаю точно, что за COM компонет у меня есть, знаю что он делает и какие у него
интерфейсы, то я могу сгенерировать ему GUID, использовать его, но в реестр ничего не записывать.

2. Я сейчас изучаю ATL с целью создания нужного мне ActiveX, не окажется ли так, что в ATL от природы зашит инстинкт лезть в реестр? То есть, существует, например, какой-нибудь конструктор или метод одного из базовых классов, который делает кучу всяких полезных вещей, но при этом ещё и в реестр лезет?

3. На самом деле, мне нужно всего лишь связать, некоторыую структуру данных с её отображением на экране. В
принципе, мне хотелось бы, чтобы штуковина работала и в другую сторону: обрабатывала действия пользователя. Может быть для этого, вообще, не нужен COM, может быть хватит MFC? (MFC я знаю плохо, поэтому и задаю такой плохо
сформулированный вопрос, но надеюсь, кто-нибудь приведёт мне пример как можно ЭТО сделать, или чтиво подскажет)

4. Если честно, я, вообще, плохо понимаю как работает Windows. Как то, что мы видим на экране, связанно с объектами С++. То есть, я не отказался бы от того, чтобы создать такую связь с нуля, в целях обучения. Примеры? Почитать?
Я конечно умею рисовать кнопочку в редакторе ресурсов, потом запускать ClassWizrd и писать нужный код, там
где написанно "// TODO: Place your code here", но, вы понимаете, мне чего-то не хватает...

vasketsov
24-09-2003, 22:13
Sharkky
Если я хочу использовать ActiveX элемент в своей программке, и при этом хочу, чтобы
она работала без инсталяции, можно ли этого достичь?
Да. Только непонятно, зачем в этом случае объект описывать как COM-объект. Никто другой его использовать не сможет, а ты и так все про него значешь.


COM использует реестр, только для
регистрации GUID'ов
Нет. В описании COM вообще мало что про реестр есть. Реестр используется для ХРАНЕНИЯ и ПОИСКА, а не для генерации.


в ATL от природы зашит инстинкт лезть в реестр?
Нет. Но там есть шаблон, который генерит код регистрации - вот он будет лазить а реестр.

Читать надо Petzold-а.




© OSzone.net 2001-2012