Jacek Caban : ieframe: Store toolbar handle in InternetEplorer.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Nov 10 10:36:20 CST 2015


Module: wine
Branch: master
Commit: 10b6d06f1523ca7e5ef5e1cf73f6ff6a9f1bd291
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=10b6d06f1523ca7e5ef5e1cf73f6ff6a9f1bd291

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Nov  9 17:52:46 2015 +0100

ieframe: Store toolbar handle in InternetEplorer.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ieframe/ieframe.h  |  1 +
 dlls/ieframe/iexplore.c | 50 ++++++++++++++++++++++++-------------------------
 2 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/dlls/ieframe/ieframe.h b/dlls/ieframe/ieframe.h
index 5806107..f0ca235 100644
--- a/dlls/ieframe/ieframe.h
+++ b/dlls/ieframe/ieframe.h
@@ -230,6 +230,7 @@ struct InternetExplorer {
 
     HWND frame_hwnd;
     HWND status_hwnd;
+    HWND toolbar_hwnd;
     HMENU menu;
     BOOL nohome;
 
diff --git a/dlls/ieframe/iexplore.c b/dlls/ieframe/iexplore.c
index 6260476..18437c9 100644
--- a/dlls/ieframe/iexplore.c
+++ b/dlls/ieframe/iexplore.c
@@ -402,7 +402,7 @@ static void ie_dialog_about(HWND hwnd)
     DestroyIcon(icon);
 }
 
-static void add_tb_separator(HWND hwnd)
+static void add_tb_separator(InternetExplorer *ie)
 {
     TBBUTTON btn;
 
@@ -410,10 +410,10 @@ static void add_tb_separator(HWND hwnd)
 
     btn.iBitmap = 3;
     btn.fsStyle = BTNS_SEP;
-    SendMessageW(hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn);
+    SendMessageW(ie->toolbar_hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn);
 }
 
-static void add_tb_button(HWND hwnd, int bmp, int cmd, int strId)
+static void add_tb_button(InternetExplorer *ie, int bmp, int cmd, int strId)
 {
     TBBUTTON btn;
     WCHAR buf[30];
@@ -427,14 +427,13 @@ static void add_tb_button(HWND hwnd, int bmp, int cmd, int strId)
     btn.dwData = 0;
     btn.iString = (INT_PTR)buf;
 
-    SendMessageW(hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn);
+    SendMessageW(ie->toolbar_hwnd, TB_ADDBUTTONSW, 1, (LPARAM)&btn);
 }
 
-static void create_rebar(HWND hwnd)
+static void create_rebar(InternetExplorer *ie)
 {
     HWND hwndRebar;
     HWND hwndAddress;
-    HWND hwndToolbar;
     REBARINFO rebarinf;
     REBARBANDINFOW bandinf;
     WCHAR addr[40];
@@ -445,7 +444,7 @@ static void create_rebar(HWND hwnd)
 
     hwndRebar = CreateWindowExW(WS_EX_TOOLWINDOW, REBARCLASSNAMEW, NULL,
             WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS|WS_CLIPCHILDREN|RBS_VARHEIGHT|CCS_TOP|CCS_NODIVIDER, 0, 0, 0, 0,
-            hwnd, (HMENU)IDC_BROWSE_REBAR, ieframe_instance, NULL);
+            ie->frame_hwnd, (HMENU)IDC_BROWSE_REBAR, ieframe_instance, NULL);
 
     rebarinf.cbSize = sizeof(rebarinf);
     rebarinf.fMask = 0;
@@ -453,29 +452,29 @@ static void create_rebar(HWND hwnd)
 
     SendMessageW(hwndRebar, RB_SETBARINFO, 0, (LPARAM)&rebarinf);
 
-    hwndToolbar = CreateWindowExW(TBSTYLE_EX_MIXEDBUTTONS, TOOLBARCLASSNAMEW, NULL, TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | CCS_NORESIZE,
+    ie->toolbar_hwnd = CreateWindowExW(TBSTYLE_EX_MIXEDBUTTONS, TOOLBARCLASSNAMEW, NULL, TBSTYLE_FLAT | WS_CHILD | WS_VISIBLE | CCS_NORESIZE,
             0, 0, 0, 0, hwndRebar, (HMENU)IDC_BROWSE_TOOLBAR, ieframe_instance, NULL);
 
     imagelist = ImageList_LoadImageW(ieframe_instance, MAKEINTRESOURCEW(IDB_IETOOLBAR), 32, 0, CLR_NONE, IMAGE_BITMAP, LR_CREATEDIBSECTION);
 
-    SendMessageW(hwndToolbar, TB_SETIMAGELIST, 0, (LPARAM)imagelist);
-    SendMessageW(hwndToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
-    add_tb_button(hwndToolbar, 0, ID_BROWSE_BACK, IDS_TB_BACK);
-    add_tb_button(hwndToolbar, 1, ID_BROWSE_FORWARD, IDS_TB_FORWARD);
-    add_tb_button(hwndToolbar, 2, ID_BROWSE_STOP, IDS_TB_STOP);
-    add_tb_button(hwndToolbar, 3, ID_BROWSE_REFRESH, IDS_TB_REFRESH);
-    add_tb_button(hwndToolbar, 4, ID_BROWSE_HOME, IDS_TB_HOME);
-    add_tb_separator(hwndToolbar);
-    add_tb_button(hwndToolbar, 5, ID_BROWSE_PRINT, IDS_TB_PRINT);
-    SendMessageW(hwndToolbar, TB_SETBUTTONSIZE, 0, MAKELPARAM(55,50));
-    SendMessageW(hwndToolbar, TB_GETMAXSIZE, 0, (LPARAM)&toolbar_size);
+    SendMessageW(ie->toolbar_hwnd, TB_SETIMAGELIST, 0, (LPARAM)imagelist);
+    SendMessageW(ie->toolbar_hwnd, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
+    add_tb_button(ie, 0, ID_BROWSE_BACK, IDS_TB_BACK);
+    add_tb_button(ie, 1, ID_BROWSE_FORWARD, IDS_TB_FORWARD);
+    add_tb_button(ie, 2, ID_BROWSE_STOP, IDS_TB_STOP);
+    add_tb_button(ie, 3, ID_BROWSE_REFRESH, IDS_TB_REFRESH);
+    add_tb_button(ie, 4, ID_BROWSE_HOME, IDS_TB_HOME);
+    add_tb_separator(ie);
+    add_tb_button(ie, 5, ID_BROWSE_PRINT, IDS_TB_PRINT);
+    SendMessageW(ie->toolbar_hwnd, TB_SETBUTTONSIZE, 0, MAKELPARAM(55,50));
+    SendMessageW(ie->toolbar_hwnd, TB_GETMAXSIZE, 0, (LPARAM)&toolbar_size);
 
     bandinf.cbSize = sizeof(bandinf);
     bandinf.fMask = RBBIM_STYLE | RBBIM_CHILD | RBBIM_CHILDSIZE;
     bandinf.fStyle = RBBS_CHILDEDGE;
     bandinf.cxMinChild = toolbar_size.cx;
     bandinf.cyMinChild = toolbar_size.cy+2;
-    bandinf.hwndChild = hwndToolbar;
+    bandinf.hwndChild = ie->toolbar_hwnd;
 
     SendMessageW(hwndRebar, RB_INSERTBANDW, -1, (LPARAM)&bandinf);
 
@@ -497,13 +496,15 @@ static LRESULT iewnd_OnCreate(HWND hwnd, LPCREATESTRUCTW lpcs)
     InternetExplorer* This = (InternetExplorer*)lpcs->lpCreateParams;
     SetWindowLongPtrW(hwnd, 0, (LONG_PTR) lpcs->lpCreateParams);
 
+    This->doc_host.frame_hwnd = This->frame_hwnd = hwnd;
+
     This->menu = create_ie_menu();
 
     This->status_hwnd = CreateStatusWindowW(WS_VISIBLE|WS_CHILD|SBT_NOBORDERS|CCS_NODIVIDER,
                                             NULL, hwnd, IDC_BROWSE_STATUSBAR);
     SendMessageW(This->status_hwnd, SB_SIMPLE, TRUE, 0);
 
-    create_rebar(hwnd);
+    create_rebar(This);
 
     return 0;
 }
@@ -567,9 +568,7 @@ static LRESULT iewnd_OnNotify(InternetExplorer *This, WPARAM wparam, LPARAM lpar
 
 static LRESULT iewnd_OnDestroy(InternetExplorer *This)
 {
-    HWND hwndRebar = GetDlgItem(This->frame_hwnd, IDC_BROWSE_REBAR);
-    HWND hwndToolbar = GetDlgItem(hwndRebar, IDC_BROWSE_TOOLBAR);
-    HIMAGELIST list = (HIMAGELIST)SendMessageW(hwndToolbar, TB_GETIMAGELIST, 0, 0);
+    HIMAGELIST list = (HIMAGELIST)SendMessageW(This->toolbar_hwnd, TB_GETIMAGELIST, 0, 0);
 
     TRACE("%p\n", This);
 
@@ -722,7 +721,7 @@ void unregister_iewindow_class(void)
 
 static void create_frame_hwnd(InternetExplorer *This)
 {
-    This->frame_hwnd = CreateWindowExW(
+    CreateWindowExW(
             WS_EX_WINDOWEDGE,
             szIEWinFrame, wszWineInternetExplorer,
             WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
@@ -730,7 +729,6 @@ static void create_frame_hwnd(InternetExplorer *This)
             CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
             NULL, NULL /* FIXME */, ieframe_instance, This);
 
-    This->doc_host.frame_hwnd = This->frame_hwnd;
     create_doc_view_hwnd(&This->doc_host);
 }
 




More information about the wine-cvs mailing list