Здравствуйте, Crulex, Вы писали:
C>Доброе время суток!
C>Пишу BHO для IE на Delphi. C>Все что нужно это добавить на тулбар кнопку с выпадающим (dropdown) меню.
C>Способа добавления такого вида кнопки на стандартный тулбар не нашел (эти кнопки регистрируются в реестре и нет возможности сделать кнопку dropdown — чтобы при нажатии вылазило контекстное меню и кнопка оставалась в нажатом состоянии до его закрытия).
C>Поэтому сделал свой тулбар (COM объект реализует IDispatch, IObjectWithSite, IDeskBand, IOleWindow) с одной единственной кнопкой и dropdown menu. Toolbar и остальные контролы создаю динамически в методе SetSite, используя VCL.
C>Проблема: при открытии нескольких копий IE только в первой появляется контекстное меню при нажатии на ToolButton. C>Пробовал показывать меню вручную при событии OnClick, меню не показывается для всех копий IE кроме первой. Проверял, объект TPopupMenu создается для каждой загруженной копии BHO.
C>Кажется мне что проблема с multithreading в VCL, думаю переписать тулбар на Win32 без VCL. C>Сталкивался ли кто-то с подобным?
При нажатиии на drop-down-кнопку генерируется сообщение TBN_DROPDOWN. Тебе нужно обрабатывать его.