Jacek Caban : mshtml: Use popup menu from shdoclc.dll.

Alexandre Julliard julliard at wine.codeweavers.com
Fri Nov 10 05:43:50 CST 2006


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Nov  9 23:54:09 2006 +0100

mshtml: Use popup menu from shdoclc.dll.

---

 dlls/mshtml/main.c           |   15 +++++++++++++++
 dlls/mshtml/mshtml_private.h |    2 ++
 dlls/mshtml/olewnd.c         |    2 +-
 3 files changed, 18 insertions(+), 1 deletions(-)

diff --git a/dlls/mshtml/main.c b/dlls/mshtml/main.c
index 9a45a72..fc224bc 100644
--- a/dlls/mshtml/main.c
+++ b/dlls/mshtml/main.c
@@ -49,6 +49,8 @@ HINSTANCE hInst;
 LONG module_ref = 0;
 DWORD mshtml_tls = 0;
 
+static HINSTANCE shdoclc = NULL;
+
 static void thread_detach(void)
 {
     thread_data_t *thread_data = get_thread_data(FALSE);
@@ -62,6 +64,17 @@ static void thread_detach(void)
     mshtml_free(thread_data);
 }
 
+HINSTANCE get_shdoclc(void)
+{
+    static const WCHAR wszShdoclc[] =
+        {'s','h','d','o','c','l','c','.','d','l','l',0};
+
+    if(shdoclc)
+        return shdoclc;
+
+    return shdoclc = LoadLibraryExW(wszShdoclc, NULL, LOAD_LIBRARY_AS_DATAFILE);
+}
+
 BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
 {
     switch(fdwReason) {
@@ -70,6 +83,8 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL,
         break;
     case DLL_PROCESS_DETACH:
         close_gecko();
+        if(shdoclc)
+            FreeLibrary(shdoclc);
         if(mshtml_tls)
             TlsFree(mshtml_tls);
         break;
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h
index b352c5f..f47a799 100644
--- a/dlls/mshtml/mshtml_private.h
+++ b/dlls/mshtml/mshtml_private.h
@@ -405,4 +405,6 @@ static inline BOOL mshtml_free(void *mem
     return HeapFree(GetProcessHeap(), 0, mem);
 }
 
+HINSTANCE get_shdoclc(void);
+
 extern HINSTANCE hInst;
diff --git a/dlls/mshtml/olewnd.c b/dlls/mshtml/olewnd.c
index ef377ab..7a207be 100644
--- a/dlls/mshtml/olewnd.c
+++ b/dlls/mshtml/olewnd.c
@@ -272,7 +272,7 @@ void HTMLDocument_ShowContextMenu(HTMLDo
     if(hres == S_OK)
         return;
 
-    menu_res = LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_BROWSE_CONTEXT_MENU));
+    menu_res = LoadMenuW(get_shdoclc(), MAKEINTRESOURCEW(IDR_BROWSE_CONTEXT_MENU));
     menu = GetSubMenu(menu_res, dwID);
 
     TrackPopupMenu(menu, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD,




More information about the wine-cvs mailing list