Shell Extention на голом WinAPI
От: MoonChild Россия  
Дата: 10.04.03 08:23
Оценка:
Люди! Кто-нибудь писал Shell Extention на голом WinAPI?
... << RSDN@Home 1.0 beta 6 >>
Re: Shell Extention на голом WinAPI
От: Рома Мик Россия http://romamik.com
Дата: 10.04.03 08:53
Оценка:
Здравствуйте, MoonChild, Вы писали:

MC>Люди! Кто-нибудь писал Shell Extention на голом WinAPI?

Ну, я. А что тут такого?
<< RSDN@Home 1.0 beta 6a >>
Re[2]: Shell Extention на голом WinAPI
От: MoonChild Россия  
Дата: 10.04.03 08:59
Оценка:
Здравствуйте, Рома Мик, Вы писали:

РМ>Здравствуйте, MoonChild, Вы писали:


MC>>Люди! Кто-нибудь писал Shell Extention на голом WinAPI?

РМ>Ну, я. А что тут такого?

О! помоги исходничком. а то я чего — то не пойму с чего начать.
... << RSDN@Home 1.0 beta 6 >>
Re[3]: Shell Extention на голом WinAPI
От: vasketsov Россия http://ntprog.by.ru
Дата: 10.04.03 17:12
Оценка:
Здравствуйте, MoonChild, Вы писали:

MC>а то я чего — то не пойму с чего начать.


1) необходимо РУКАМИ написать 2 класса, 1 — фабрику классов, 2 — объект (можно и в один все запихать, если гемор любите, не советую). Соответственно, 1-й обязан реализовывать IClassFactory, второй — что надо. Вся проблема — это правильно ссылки подсчитывать. Если с этим трабл — есть в PSDK пример соответствующий, там прямо несколько расширений оболочки, и именно на API.

2) регистрация в системном реестре. по идее тоже неплохо было бы уметь делать это руками, хотя это не обязательно. Более того, расширение оболочки может и не уметь регистрироваться автоматически.

3) добавить в скрипт в свойства файла строку OleSelfRegister (это очень рекомендую), если DllRegisterServer и ее "сестричка" все-таки будут написаны (что тоже рекомендуется лучшими собаководами ).
Васкецов Сергей
http://registry.km.ru
Re[4]: Shell Extention на голом WinAPI
От: MoonChild Россия  
Дата: 11.04.03 08:28
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Здравствуйте, MoonChild, Вы писали:


MC>>а то я чего — то не пойму с чего начать.


V>1) необходимо РУКАМИ написать 2 класса, 1 — фабрику классов, 2 — объект (можно и в один все запихать, если гемор любите, не советую). Соответственно, 1-й обязан реализовывать IClassFactory, второй — что надо. Вся проблема — это правильно ссылки подсчитывать. Если с этим трабл — есть в PSDK пример соответствующий, там прямо несколько расширений оболочки, и именно на API.


V>2) регистрация в системном реестре. по идее тоже неплохо было бы уметь делать это руками, хотя это не обязательно. Более того, расширение оболочки может и не уметь регистрироваться автоматически.


V>3) добавить в скрипт в свойства файла строку OleSelfRegister (это очень рекомендую), если DllRegisterServer и ее "сестричка" все-таки будут написаны (что тоже рекомендуется лучшими собаководами ).

Спасибо.
... << RSDN@Home 1.0 beta 6 >>
Re[4]: Shell Extention на голом WinAPI
От: MoonChild Россия  
Дата: 11.04.03 08:52
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Здравствуйте, MoonChild, Вы писали:


MC>>а то я чего — то не пойму с чего начать.


V>1) необходимо РУКАМИ написать 2 класса, 1 — фабрику классов,

Где-то я читал, что можно обойтись и без фабрики классов. Это так?
... << RSDN@Home 1.0 beta 6 >>
Re[5]: Shell Extention на голом WinAPI
От: vasketsov Россия http://ntprog.by.ru
Дата: 11.04.03 09:25
Оценка:
Здравствуйте, MoonChild, Вы писали:

MC>Где-то я читал, что можно обойтись и без фабрики классов. Это так?

Не понимаю как без нее можно.
Отладка библиотек расширения показывает, что оболочка пытается изначально создать именно фабрику классов (если есть обратный пример — хочу его видеть).
Другое дело, что фабрика классов может сама реализовывать IShellExtInit и остальное что надо, я об этом писал в сообщении, причины, по которым так стоит делать, мне неизвестны.
Васкецов Сергей
http://registry.km.ru
Re[6]: Shell Extention на голом WinAPI
От: MoonChild Россия  
Дата: 11.04.03 09:44
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Здравствуйте, MoonChild, Вы писали:


MC>>Где-то я читал, что можно обойтись и без фабрики классов. Это так?

V>Не понимаю как без нее можно.
Я видел исходники на ASM, в котором классов нет. В постскриптуме автор говорит, что можно тоже самое сделать используя фабрику классов итд...
... << RSDN@Home 1.0 beta 6 >>
Re[7]: Shell Extention на голом WinAPI
От: vasketsov Россия http://ntprog.by.ru
Дата: 11.04.03 10:19
Оценка:
Здравствуйте, MoonChild, Вы писали:

MC>Я видел исходники на ASM, в котором классов нет.


Не надо понимать буквально.
Там должна быть некоторая сущность, которая будет работать как ClassFactory и выдавать интерфейс на объект, ну, на VMT.
А уж как это сделать — это не принципиально, но интерфейс отдать надо по-любому. Ибо Explorer.exe про то, что у вас dll на асме написана, уж поверьте, ничего не знает.
Васкецов Сергей
http://registry.km.ru
Re[8]: Shell Extention на голом WinAPI
От: MoonChild Россия  
Дата: 11.04.03 12:04
Оценка:
Здравствуйте, vasketsov, Вы писали:

V>Здравствуйте, MoonChild, Вы писали:


MC>>Я видел исходники на ASM, в котором классов нет.


V>Не надо понимать буквально.

V>Там должна быть некоторая сущность, которая будет работать как ClassFactory и выдавать интерфейс на объект, ну, на VMT.
V>А уж как это сделать — это не принципиально, но интерфейс отдать надо по-любому. Ибо Explorer.exe про то, что у вас dll на асме написана, уж поверьте, ничего не знает.

Теперь начинаю понимать. Спасибо.
... << RSDN@Home 1.0 beta 6 >>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.