Пару дней назад возникла необходимость в написании плагина под Google Chrome с использованием NpApi. Поискав исходники и почитав статьи по использованию API, я настрогал Dll'ку которая выводит форму Hellow World (Delphi) на Html страницу...но возникла проблема, плагин работает только до первой перезагрузки страницы, а затем выдает System Error 1400 - Недопустимый дескриптор окна.
Я перерыл весь код, но так и не смог исправить...надеюсь что кто нибудь сможет мне помочь.
P.S если в NpForm.pas удалить 110 строку (if WindowHandle = 0 then exit) то плагин при обновлении функционирует нормально, но при каждом рефреше в Google Chrome создаются скрытые окна с формой (Hellow World) и это приводит к подвисанию...
| Код | procedure TFormPlugin.WindowHandleChanged ; begin inherited WindowHandleChanged ; if WindowHandle = 0 then exit ;
{ set the clip children flag in the plugin window style so that } { the background isn't erased where the form is going to be. } SetWindowLong( WindowHandle, GWL_STYLE, GetWindowLong( WindowHandle, GWL_STYLE ) or WS_CLIPCHILDREN ) ;
{ we have a new window handle - create a form and resize it to fit } FPluginForm := CreatePluginForm ; try ResizePluginForm ; FPluginForm.Show ; except FPluginForm.Free ; FPluginForm := NIL ; end ; end ;
|
Если ни кто не может помочь, то хотя бы посоветуйте как отлаживать dll с NpApi |