void onDispose(long /*int*/ embedHandle) { if (SubclassProc == null) return; long /*int*/ hwndChild = OS.GetWindow(browser.handle, OS.GW_CHILD); OS.SetWindowLongPtr(hwndChild, OS.GWL_WNDPROC, MozillaProc); childWindows = null; browser = null; }
void addWindowSubclass() { long /*int*/ hwndChild = OS.GetWindow(browser.handle, OS.GW_CHILD); if (SubclassProc == null) { SubclassProc = new Callback(MozillaDelegate.class, "windowProc", 4); // $NON-NLS-1$ MozillaProc = OS.GetWindowLongPtr(hwndChild, OS.GWL_WNDPROC); } OS.SetWindowLongPtr(hwndChild, OS.GWL_WNDPROC, SubclassProc.getAddress()); }
void removeWindowSubclass() { long /*int*/ hwndChild = OS.GetWindow(browser.handle, OS.GW_CHILD); if (SubclassProc != null) { OS.SetWindowLongPtr(hwndChild, OS.GWL_WNDPROC, MozillaProc); } }