Erich Hoover : hhctrl.ocx: Permit WS_CHILD help windows.

Alexandre Julliard julliard at winehq.org
Mon Jul 16 14:14:30 CDT 2012


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

Author: Erich Hoover <ehoover at mines.edu>
Date:   Thu Jul 12 10:25:07 2012 -0600

hhctrl.ocx: Permit WS_CHILD help windows.

---

 dlls/hhctrl.ocx/help.c   |   16 ++++++++++++----
 dlls/hhctrl.ocx/hhctrl.c |    4 ++--
 dlls/hhctrl.ocx/hhctrl.h |    2 +-
 3 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/dlls/hhctrl.ocx/help.c b/dlls/hhctrl.ocx/help.c
index 2f2fba1..ed5528c 100644
--- a/dlls/hhctrl.ocx/help.c
+++ b/dlls/hhctrl.ocx/help.c
@@ -1585,7 +1585,7 @@ static LRESULT CALLBACK Help_WndProc(HWND hWnd, UINT message, WPARAM wParam, LPA
 
 static BOOL HH_CreateHelpWindow(HHInfo *info)
 {
-    HWND hWnd;
+    HWND hWnd, parent = 0;
     RECT winPos = info->WinType.rcWindowPos;
     WNDCLASSEXW wcex;
     DWORD dwStyles, dwExStyles;
@@ -1613,7 +1613,11 @@ static BOOL HH_CreateHelpWindow(HHInfo *info)
 
     /* Read in window parameters if available */
     if (info->WinType.fsValidMembers & HHWIN_PARAM_STYLES)
-        dwStyles = info->WinType.dwStyles | WS_OVERLAPPEDWINDOW;
+    {
+        dwStyles = info->WinType.dwStyles;
+        if (!(info->WinType.dwStyles & WS_CHILD))
+            dwStyles |= WS_OVERLAPPEDWINDOW;
+    }
     else
         dwStyles = WS_OVERLAPPEDWINDOW | WS_VISIBLE |
                    WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
@@ -1655,8 +1659,11 @@ static BOOL HH_CreateHelpWindow(HHInfo *info)
     caption = info->WinType.pszCaption;
     if (!*caption) caption = info->pCHMInfo->defTitle;
 
+    if (info->WinType.dwStyles & WS_CHILD)
+        parent = info->WinType.hwndCaller;
+
     hWnd = CreateWindowExW(dwExStyles, windowClassW, caption,
-                           dwStyles, x, y, width, height, NULL, NULL, hhctrl_hinstance, NULL);
+                           dwStyles, x, y, width, height, parent, NULL, hhctrl_hinstance, NULL);
     if (!hWnd)
         return FALSE;
 
@@ -1773,7 +1780,7 @@ void ReleaseHelpViewer(HHInfo *info)
     OleUninitialize();
 }
 
-HHInfo *CreateHelpViewer(LPCWSTR filename)
+HHInfo *CreateHelpViewer(LPCWSTR filename, HWND caller)
 {
     HHInfo *info = heap_alloc_zero(sizeof(HHInfo));
     int i;
@@ -1796,6 +1803,7 @@ HHInfo *CreateHelpViewer(LPCWSTR filename)
         ReleaseHelpViewer(info);
         return NULL;
     }
+    info->WinType.hwndCaller = caller;
 
     if(!CreateViewer(info)) {
         ReleaseHelpViewer(info);
diff --git a/dlls/hhctrl.ocx/hhctrl.c b/dlls/hhctrl.ocx/hhctrl.c
index a5e7e37..bda435a 100644
--- a/dlls/hhctrl.ocx/hhctrl.c
+++ b/dlls/hhctrl.ocx/hhctrl.c
@@ -181,7 +181,7 @@ HWND WINAPI HtmlHelpW(HWND caller, LPCWSTR filename, UINT command, DWORD_PTR dat
         }
         index = default_index;
 
-        info = CreateHelpViewer(fullname);
+        info = CreateHelpViewer(fullname, caller);
         if(!info)
         {
             heap_free(default_index);
@@ -253,7 +253,7 @@ HWND WINAPI HtmlHelpW(HWND caller, LPCWSTR filename, UINT command, DWORD_PTR dat
             return 0;
         }
 
-        info = CreateHelpViewer(fullname);
+        info = CreateHelpViewer(fullname, caller);
         if(!info)
             return NULL;
 
diff --git a/dlls/hhctrl.ocx/hhctrl.h b/dlls/hhctrl.ocx/hhctrl.h
index f03d476..bfc6618 100644
--- a/dlls/hhctrl.ocx/hhctrl.h
+++ b/dlls/hhctrl.ocx/hhctrl.h
@@ -194,7 +194,7 @@ IStream *GetChmStream(CHMInfo*,LPCWSTR,ChmPath*) DECLSPEC_HIDDEN;
 LPWSTR FindContextAlias(CHMInfo*,DWORD) DECLSPEC_HIDDEN;
 WCHAR *GetDocumentTitle(CHMInfo*,LPCWSTR) DECLSPEC_HIDDEN;
 
-HHInfo *CreateHelpViewer(LPCWSTR) DECLSPEC_HIDDEN;
+HHInfo *CreateHelpViewer(LPCWSTR,HWND) DECLSPEC_HIDDEN;
 void ReleaseHelpViewer(HHInfo*) DECLSPEC_HIDDEN;
 BOOL NavigateToUrl(HHInfo*,LPCWSTR) DECLSPEC_HIDDEN;
 BOOL NavigateToChm(HHInfo*,LPCWSTR,LPCWSTR) DECLSPEC_HIDDEN;




More information about the wine-cvs mailing list