[PATCH 06/45] [WinHelp]: no longer store the WINHELP_WINDOW pointer in every window, but only in the main one (as we now have it present all cases)

Eric Pouech eric.pouech at orange.fr
Sun Mar 23 04:17:42 CDT 2008




A+
---

 programs/winhelp/winhelp.c |   17 ++++++-----------
 1 files changed, 6 insertions(+), 11 deletions(-)


diff --git a/programs/winhelp/winhelp.c b/programs/winhelp/winhelp.c
index adc4e7a..a4cf342 100644
--- a/programs/winhelp/winhelp.c
+++ b/programs/winhelp/winhelp.c
@@ -301,16 +301,17 @@ static BOOL WINHELP_RegisterWinClasses(void)
     class_main.lpszClassName       = MAIN_WIN_CLASS_NAME;
 
     class_button_box               = class_main;
+    class_button_box.cbWndExtra    = 0;
     class_button_box.lpfnWndProc   = WINHELP_ButtonBoxWndProc;
     class_button_box.hbrBackground = (HBRUSH)(COLOR_BTNFACE+1);
     class_button_box.lpszClassName = BUTTON_BOX_WIN_CLASS_NAME;
 
-    class_shadow = class_main;
+    class_shadow                   = class_main;
     class_shadow.lpfnWndProc       = WINHELP_ShadowWndProc;
     class_shadow.hbrBackground     = (HBRUSH)(COLOR_3DDKSHADOW+1);
     class_shadow.lpszClassName     = SHADOW_WIN_CLASS_NAME;
 
-    class_history = class_main;
+    class_history                  = class_main;
     class_history.lpfnWndProc      = WINHELP_HistoryWndProc;
     class_history.lpszClassName    = HISTORY_WIN_CLASS_NAME;
 
@@ -453,7 +454,6 @@ static BOOL     WINHELP_ReuseWindow(WINHELP_WINDOW* win, WINHELP_WINDOW* oldwin,
     oldwin->hMainWnd   = oldwin->hButtonBoxWnd = oldwin->hTextWnd = oldwin->hHistoryWnd = 0;
 
     SetWindowLong(win->hMainWnd,      0, (LONG)win);
-    SetWindowLong(win->hButtonBoxWnd, 0, (LONG)win);
     SetWindowLong(win->hHistoryWnd,   0, (LONG)win);
 
     WINHELP_InitFonts(win->hMainWnd);
@@ -620,11 +620,12 @@ BOOL WINHELP_CreateHelpWindow(HLPFILE_PAGE* page, HLPFILE_WINDOWINFO* wi,
     /* Create button box and text Window */
     if (!bPopup)
         CreateWindow(BUTTON_BOX_WIN_CLASS_NAME, "", WS_CHILD | WS_VISIBLE,
-                     0, 0, 0, 0, hWnd, (HMENU)CTL_ID_BUTTON, Globals.hInstance, win);
+                     0, 0, 0, 0, hWnd, (HMENU)CTL_ID_BUTTON, Globals.hInstance, NULL);
 
     win->hTextWnd = CreateWindow(RICHEDIT_CLASS, NULL,
                                  ES_MULTILINE | ES_READONLY | WS_CHILD | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE,
                                  0, 0, 0, 0, hWnd, (HMENU)CTL_ID_TEXT, Globals.hInstance, NULL);
+
     WINHELP_LayoutMainWindow(win);
     if (bPopup) Globals.hPopupWnd = hWnd;
 
@@ -785,15 +786,9 @@ static LRESULT CALLBACK WINHELP_ButtonBoxWndProc(HWND hWnd, UINT msg, WPARAM wPa
 
     switch (msg)
     {
-    case WM_NCCREATE:
-        win = (WINHELP_WINDOW*) ((LPCREATESTRUCT) lParam)->lpCreateParams;
-        SetWindowLong(hWnd, 0, (LONG) win);
-        win->hButtonBoxWnd = hWnd;
-        break;
-
     case WM_WINDOWPOSCHANGING:
         winpos = (WINDOWPOS*) lParam;
-        win = (WINHELP_WINDOW*) GetWindowLong(hWnd, 0);
+        win = (WINHELP_WINDOW*) GetWindowLong(GetParent(hWnd), 0);
 
         /* Update buttons */
         button_size.cx = 0;





More information about the wine-patches mailing list