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