From c7668971968e044e85446d79362d7744846efdd0 Mon Sep 17 00:00:00 2001 From: wolfbeast Date: Mon, 19 Feb 2018 10:00:25 +0100 Subject: Remove the use of GetProcAddress() for shell32 This avoids manually hooking into shell32.dll and using the native shell API instead. Tag #22. --- toolkit/xre/nsEmbedFunctions.cpp | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) (limited to 'toolkit/xre/nsEmbedFunctions.cpp') diff --git a/toolkit/xre/nsEmbedFunctions.cpp b/toolkit/xre/nsEmbedFunctions.cpp index 0e85532b9..1e67ea7ce 100644 --- a/toolkit/xre/nsEmbedFunctions.cpp +++ b/toolkit/xre/nsEmbedFunctions.cpp @@ -24,6 +24,7 @@ #ifdef XP_WIN #include +#include #include "mozilla/ipc/WindowsMessageLoop.h" #endif @@ -119,10 +120,6 @@ using mozilla::startup::sChildProcessType; static NS_DEFINE_CID(kAppShellCID, NS_APPSHELL_CID); -#ifdef XP_WIN -static const wchar_t kShellLibraryName[] = L"shell32.dll"; -#endif - nsresult XRE_LockProfileDirectory(nsIFile* aDirectory, nsISupports* *aLockObject) @@ -270,26 +267,9 @@ XRE_SetRemoteExceptionHandler(const char* aPipe/*= 0*/) void SetTaskbarGroupId(const nsString& aId) { - typedef HRESULT (WINAPI * SetCurrentProcessExplicitAppUserModelIDPtr)(PCWSTR AppID); - - SetCurrentProcessExplicitAppUserModelIDPtr funcAppUserModelID = nullptr; - - HMODULE hDLL = ::LoadLibraryW(kShellLibraryName); - - funcAppUserModelID = (SetCurrentProcessExplicitAppUserModelIDPtr) - GetProcAddress(hDLL, "SetCurrentProcessExplicitAppUserModelID"); - - if (!funcAppUserModelID) { - ::FreeLibrary(hDLL); - return; - } - - if (FAILED(funcAppUserModelID(aId.get()))) { + if (FAILED(SetCurrentProcessExplicitAppUserModelID(aId.get()))) { NS_WARNING("SetCurrentProcessExplicitAppUserModelID failed for child process."); } - - if (hDLL) - ::FreeLibrary(hDLL); } #endif -- cgit v1.2.3