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