Хочу сдалать Desk Band — это панелька как Паналь быстрого запуска (рядом с Пуском)
В MSDN подробно расписано и пример есть как это сделать (в инете тоже есть примеры, чистая копия из MSDN), но там все без поддержки MFC.
Я сам пробовал сделать:
Сделал MFC DLL визардом, добавил поддержку ATL визардом, добавил класс ATL Simple Object, отнаследовался от всех нужных интерфейсоф. Создал класс окошка CWnd и создаю окно, когда срабатывает функция из интерфейса. Все валится из-за вызова AfxGetInstanceHandle() внутри функции интерфейса.
MFC мне нужен, т.к. надо будет рисовать сложные вещи, с архивами работать и пр (без него никуда, всетаки GUI делаю). На API виндовса, как в примерах далают, мне нафиг не надо, и так сложностей хватает
Здравствуйте, Alеxandr, Вы писали:
A>Сделал MFC DLL визардом, добавил поддержку ATL визардом, добавил класс ATL Simple Object, отнаследовался от всех нужных интерфейсоф. Создал класс окошка CWnd и создаю окно, когда срабатывает функция из интерфейса. Все валится из-за вызова AfxGetInstanceHandle() внутри функции интерфейса.
У меня в такие интерфейсные функции Визард добавлял
AFX_MANAGE_STATE.
STDMETHODIMP CComment::get_Content( /*[out, retval]*/ BSTR *pVal )
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
...
}
Здравствуйте, Vi2, Вы писали:
Vi2>У меня в такие интерфейсные функции Визард добавлял AFX_MANAGE_STATE.
Vi2>Vi2>STDMETHODIMP CComment::get_Content( /*[out, retval]*/ BSTR *pVal )
Vi2> {
Vi2> AFX_MANAGE_STATE(AfxGetStaticModuleState())
Vi2>...
Vi2> }
Vi2>
Ура, наконец то. теперь заработало.
А вообще я видел кучу примеров как это делать в VC6.0 и не одного в VC7, как правильно сделать простую MFC DLL-ку, реализующую инрефейс. (да и без всяких там нафиг не нужных Type Library

)