проблема:
есть ATL модуль занимающийся отображением некой информации(рисует график)
нужно:
вызвать его из любого windows приложения и передать HWND куда рисовать
подскажите как передать HWND. у меня это не получается т.к.
для idl файла нет типа HWND.
Здравствуйте rdDan, Вы писали:
D>проблема: D>есть ATL модуль занимающийся отображением некой информации(рисует график) D>нужно: D>вызвать его из любого windows приложения и передать HWND куда рисовать
D>подскажите как передать HWND. у меня это не получается т.к. D>для idl файла нет типа HWND.
А>Здравствуйте rdDan, Вы писали:
D>>проблема: D>>есть ATL модуль занимающийся отображением некой информации(рисует график) D>>нужно: D>>вызвать его из любого windows приложения и передать HWND куда рисовать
OAHWND — это не более чем typedef long OAHWND, так что никто тебе не мешает его объявить и использовать. Другое дело, что с ним смогут делать клиенты, написанные на VB? Я этого не знаю, так как на VB не пишу.
> Другое дело, что с ним смогут делать клиенты, написанные на VB
Я недавно начал с VC++(ATL) разбираться, с использованием в VB и VBA и передаю hWnd как есть в VB — т.е. long
потом
HWND hw;
hw=(HWND) lnghWnd;
А что, так не надо делать?
Re[4]: передача HWND в ATL
От:
Аноним
Дата:
25.02.02 06:36
Оценка:
Здравствуйте Oldpasp, Вы писали:
>> Другое дело, что с ним смогут делать клиенты, написанные на VB O>Я недавно начал с VC++(ATL) разбираться, с использованием в VB и VBA и передаю hWnd как есть в VB — т.е. long O>потом O>HWND hw; O>hw=(HWND) lnghWnd;
O>А что, так не надо делать?
на сколько я понимаю именно так.
в одном из Мелкософтных определений "control.old" он именно так и определён: typedef LONG_PTR OAHWND;
параметры размером 4 байта long
2 байта short
1 байт byte
структура по указателю MYSTRUCT *pVal, если в VB то надо ее в idl файле описать
массив указатель на начало, т.е. long, если в VB то пакуем в SAFEARRAY