Аннотация :
Первая статья из цикла. Общие сведения о расширениях оболочки Windows. Создание расширения, добавляющего свой пункт в контекстное меню для txt файлов, общие вопросы отладки и регистрации расширений.
Re: Michael Dunn. Руководство полного идиота ... Часть I
От:
Аноним
Дата:
13.05.04 16:49
Оценка:
А не подскажите как все это сделать в VS.NET
А то у меня не получается
в частности не могу понять куда он GUID переменную определил
Re[2]: Michael Dunn. Руководство полного идиота ... Часть I
Re[3]: Michael Dunn. Руководство полного идиота ... Часть I
От:
Аноним
Дата:
15.05.04 18:46
Оценка:
Здравствуйте, Odi$$ey,
Нет я конечно только начинаю подходить к вопросам по ATL
но VS ругается типа переменные CLSID_SimpleShlExt,IIDISimpleShlExt,LIBID_SimpleExt не определены и
вообще после добавления Simple ATL Object в хедере не было
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CSimpleShlExt, &CLSID_SimpleShlExt>,
public IDispatchImpl<ISimpleShlExt, &IID_ISimpleShlExt, &LIBID_SIMPLEEXTLib>
А в VS6 они есть
толи глюк то ли я объект не так добавляю???
Re[4]: Michael Dunn. Руководство полного идиота ... Часть I
Здравствуйте, Аноним, Вы писали:
А>толи глюк то ли я объект не так добавляю???
что ты вообще-то пытаешься сделать? какая версия студии? на каком шаге и какой дословно облом?
Re[5]: Michael Dunn. Руководство полного идиота ... Часть I
От:
Аноним
Дата:
17.05.04 11:41
Оценка:
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, Аноним, Вы писали:
А>>толи глюк то ли я объект не так добавляю???
OE>что ты вообще-то пытаешься сделать? какая версия студии? на каком шаге и какой дословно облом?
В данный момент в командировке и неимею возможности доступа к исходникам не имею
но по памяти VS7.0
строки не добавляет при подключении Simple ATL object
если добавить руками то облом происходит при компиляции
Re[6]: Michael Dunn. Руководство полного идиота ... Часть I
Здравствуйте, falcon8, Вы писали:
F>Я вернулся с командировки но ответа не вижу а жаль проблема таже
>что ты вообще-то пытаешься сделать _по_шагам_? какая версия студии? на каком шаге и какой _дословно_ облом?
Re[8]: Michael Dunn. Руководство полного идиота ... Часть I
Здравствуйте, Odi$$ey, Вы писали:
OE>Здравствуйте, falcon8, Вы писали:
F>>Я вернулся с командировки но ответа не вижу а жаль проблема таже
>>что ты вообще-то пытаешься сделать _по_шагам_? какая версия студии? на каком шаге и какой _дословно_ облом?
Ответ нашел я не тот проект выбирал при создании спасибо за внимание
Re: Michael Dunn. Руководство полного идиота ... Часть I
От:
Аноним
Дата:
02.06.04 06:09
Оценка:
OEП>Первая статья из цикла. Общие сведения о расширениях оболочки Windows. Создание расширения, добавляющего свой пункт в контекстное меню для txt файлов, общие вопросы отладки и регистрации расширений.
А добавить закладку на страницу свойств как?
Re[2]: Michael Dunn. Руководство полного идиота ... Часть I
появилась новая непонятка
error C2787: 'IContextMenu' : no GUID has been associated with this object
error C2440: 'initializing' : cannot convert from 'DWORD_PTR' to 'const IID *'
error C2078: too many initializers
Подскажите!
Re[10]: Michael Dunn. Руководство полного идиота ... Часть I
Здравствуйте, falcon8, Вы писали:
F>появилась новая непонятка F> error C2787: 'IContextMenu' : no GUID has been associated with this object F> error C2440: 'initializing' : cannot convert from 'DWORD_PTR' to 'const IID *' F> error C2078: too many initializers
F>Подскажите!
А можно ли туда прикрутить WTL? В частности, не делать страницу "вручную", за запихнуть ее в CPropertyPageImpl-derived класс? У меня что-то не получается...
Re[4]: Michael Dunn. Руководство полного идиота ... Часть I
От:
Аноним
Дата:
08.06.04 09:06
Оценка:
А>А можно ли туда прикрутить WTL? В частности, не делать страницу "вручную", за запихнуть ее в CPropertyPageImpl-derived класс? У меня что-то не получается...
Все получилось, сам дурак... Теперь другой вопрос: не работает счетчик ссылок. Если открыть два окна свойств, а потом одно закрыть, то второе тоже падает вместе с проводником. Самое печальное, что я не догадался проверить, работает ли это в исходном примере (без WTL)
Re: Michael Dunn. Руководство полного идиота ... Часть I
Пытаюсь создать то же самое на VS.NET 2003:
Всё сделал(по шагам), всё закомпилилось(не сразу , но не работает.
В реестр всё добавлено, dll'ка зарегистрирована, но не появляется доп пункт в контекстное меню меню.
При дебаге ни в какой метод ни заходит.
Проект из статьи компилится и работает ок(в дебаге тоже всё ок).
Быть может я не то создал(а то визарды с VS6 поменялись)?
VC++ projects -> ATL Project(убираю галку attributed)
Add Class -> ATL Simple Object -> Ввожу имя и ничего не меняю.
Далее делаю все как в статье (IShellExtInit, IContextMenu), вообщем 2 пальцевый метод программирования(ctrl + C, ctrl + V), только соответственно заменяя переменные.
Отличия от исходника с статьи:
— создается 2 rgs файла
(в 1 всё ок определяется(CLSID..) + плюс добавляю к нему то что должно быть в txtfile, в другом:
... val AppID = s '%APPID%' ... — по дефалту создается ещё перед добавления ATL Simple OBject)
— Методы DllMain, DllRegisterServer... содержат по паре строчек типа
HRESULT hr = _AtlModule.DllRegisterServer();
return hr;
(Для DllregisterServer)
DllMain... — руками пишутся, или так создаются?
Если кто писал это на VS.NET 2003, не могли бы подсказать .
Re: Michael Dunn. Руководство полного идиота ... Часть I
Делал расширение оболочки на IContextMenu.
Пример из статьи сразу скомпилировался. Однако при создании своего COM объекта (VS2005) два дня не получалось повторить эффект демо-проекта.
Долго сравнивал код свой и из демки. В конце концов нашел различия.
У меня в созданном rgs файле отсутствовала строка, выделенная жирным шрифтом. Только после её добавления всё заработало.
InprocServer32 = s '%MODULE%'
{
val ThreadingModel = s 'Apartment'
}
Пишу эту мессагу, чтобы остальные на этих же граблях долго не топтались.