Module: wine Branch: master Commit: 8ea593267cbbea9c9b4d6ca11a8139801caab420 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8ea593267cbbea9c9b4d6ca11a...
Author: Jacek Caban jacek@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,