Для Windows, я использую стандартное окно поиска для браузера:
void __fastcall TForm1::ShowSearchBrowser(TCppWebBrowser *WB)
{
const GUID CGID_IWebBrowser =
{0xed016940, 0xbd5b, 0x11cf,
{0xba, 0x4e, 0x0, 0xc0, 0x4f, 0xd7, 0x08, 0x16}} ;
LPDISPATCH lpDispatch = WB->ControlInterface->get_Document(); //получаешь интерфейс на документ
if(lpDispatch)
{
IOleCommandTarget* pcmd=NULL;
if( SUCCEEDED(lpDispatch->QueryInterface(IID_IOleCommandTarget,(void**)&pcmd) ) ) //запрашиваешь интерфейс для выполнения команд
{ //если интерфейс успешно получен, то
pcmd->Exec(&CGID_IWebBrowser, HTMLID_FIND, 0, NULL, NULL); //выполняешь команду
pcmd->Release(); //освобождаешь ресурсы
}
lpDispatch->Release(); //освобождаешь ресурсы
}
}