Jacek Caban : mshtml: Create "Internet Explorer_Hidden" window.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Aug 9 10:37:22 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: cba2e19409f3360ff8fd5fff2da0a281e0ba9d6e
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=cba2e19409f3360ff8fd5fff2da0a281e0ba9d6e

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Aug  9 16:34:02 2006 +0200

mshtml: Create "Internet Explorer_Hidden" window.

---

 dlls/mshtml/htmldoc.c        |    1 +
 dlls/mshtml/mshtml_private.h |    1 +
 dlls/mshtml/view.c           |   32 ++++++++++++++++++++++++++++++++
 3 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c
index e3c7e32..c991e28 100644
--- a/dlls/mshtml/htmldoc.c
+++ b/dlls/mshtml/htmldoc.c
@@ -154,6 +154,7 @@ static ULONG WINAPI HTMLDocument_Release
             DestroyWindow(This->tooltips_hwnd);
         if(This->hwnd)
             DestroyWindow(This->hwnd);
+        DestroyWindow(This->hidden_hwnd);
 
         release_nodes(This);
 
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index 5f6bece..e34c0fa 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -87,6 +87,7 @@ struct HTMLDocument {
     IOleInPlaceFrame *frame;
 
     HWND hwnd;
+    HWND hidden_hwnd;
     HWND tooltips_hwnd;
 
     USERMODE usermode;
diff --git a/dlls/mshtml/view.c b/dlls/mshtml/view.c
index b0cf67c..3302f5f 100644
--- a/dlls/mshtml/view.c
+++ b/dlls/mshtml/view.c
@@ -49,6 +49,36 @@ typedef struct {
     WNDPROC proc;
 } tooltip_data;
 
+static LRESULT WINAPI hidden_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
+{
+    if(msg > WM_USER)
+        FIXME("(%p %d %x %lx)\n", hwnd, msg, wParam, lParam);
+
+    return DefWindowProcW(hwnd, msg, wParam, lParam);
+}
+
+static void create_hidden_window(HTMLDocument *This)
+{
+    static ATOM hidden_wnd_class = 0;
+    static const WCHAR wszInternetExplorer_Hidden[] = {'I','n','t','e','r','n','e','t',
+            ' ','E','x','p','l','o','r','e','r','_','H','i','d','d','e','n',0};
+
+    if(!hidden_wnd_class) {
+        WNDCLASSEXW wndclass = {
+            sizeof(WNDCLASSEXW), 0,
+            hidden_proc,
+            0, 0, hInst, NULL, NULL, NULL, NULL,
+            wszInternetExplorer_Hidden,
+            NULL
+        };
+
+        hidden_wnd_class = RegisterClassExW(&wndclass);
+    }
+
+    This->hidden_hwnd = CreateWindowExW(0, wszInternetExplorer_Hidden, NULL, WS_POPUP,
+                                        0, 0, 0, 0, NULL, NULL, hInst, This);
+}
+
 static void paint_disabled(HWND hwnd) {
     HDC hdc;
     PAINTSTRUCT ps;
@@ -664,4 +694,6 @@ void HTMLDocument_View_Init(HTMLDocument
     This->in_place_active = FALSE;
     This->ui_active = FALSE;
     This->window_active = FALSE;
+
+    create_hidden_window(This);
 }




More information about the wine-cvs mailing list