Передача событий мыши в невидимый MSHTML с flash
От: frankinshtein Россия  
Дата: 30.10.07 08:55
Оценка:
Здравствуйте.
Необходимо отрисовать в текстуру страничку с HTML и обрабатывать события от мыши. На страничке могут находиться flash контролы.
Я реализовал скрытое child окно с IWebBrowser, получаю IViewObject рисую в DC, копирую в текстуру, тут все нормально, работает.
Но! есть серьёзная проблема с событиями от мыши в flash контроле.
Они не всегда срабатывают (через раз и хуже), как будто флеш еще где-то сам опрашивает мышь.

Пробывал:
— передавать события через SendMessage,
— через IOleInPlaceObjectWindowless:
void IEWindow::OnMouseEvent(UINT msg, WPARAM wp, LPARAM lp)
{
IDispatch *disp = 0;
    _browser->get_Document(&disp);        
    if (disp)
    {
        
        IHTMLDocument2 *html = 0;
        disp->QueryInterface(__uuidof(IHTMLDocument2), (void**)&html);

        if (html)
        {
            POINT curpos;
            GetCursorPos(&curpos);
            ScreenToClient(_parentHWND, &curpos);
            IHTMLElement *elem = 0;
            html->elementFromPoint(curpos.x, curpos.y, &elem);
            if (elem)
            {
                IOleInPlaceObjectWindowless *wl = 0;
                elem->QueryInterface(__uuidof(IOleInPlaceObjectWindowless ), (void**)&wl);

                if (wl)
                {
                    LRESULT lr = 0;
                    wl->OnWindowMessage(msg, wp, lp, &lr);

                    wl->Release();
                }
                elem->Release();
            }
            html->Release();
        }
        disp->Release();
    }


но это не помогает

Я много гуглил и искал тут, данная проблема возникает довольно часто, но я так и не нашел нормального решения.
Прошу Вашей помощи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.