summaryrefslogtreecommitdiffstats
path: root/widget
diff options
context:
space:
mode:
authorMoonchild <moonchild@palemoon.org>2020-09-17 15:24:50 +0000
committerMoonchild <moonchild@palemoon.org>2020-09-17 15:25:44 +0000
commit8151bb2b05f71c7fac9aefc94b97d7b703c8d803 (patch)
tree5b36af1946702a7a439fd1fd113913b9cee4d395 /widget
parentb6b868b1bda0d82b85647f3e9ff2ab1f788eeb46 (diff)
downloadUXP-8151bb2b05f71c7fac9aefc94b97d7b703c8d803.tar
UXP-8151bb2b05f71c7fac9aefc94b97d7b703c8d803.tar.gz
UXP-8151bb2b05f71c7fac9aefc94b97d7b703c8d803.tar.lz
UXP-8151bb2b05f71c7fac9aefc94b97d7b703c8d803.tar.xz
UXP-8151bb2b05f71c7fac9aefc94b97d7b703c8d803.zip
Issue #1653 - Part 1: Remove WinUtils::SHGetKnownFolderPath
Instead of doing the whole dll-load, replace function dance, we can just use the shlobj.h version of Windows.
Diffstat (limited to 'widget')
-rw-r--r--widget/windows/WinIMEHandler.cpp4
-rw-r--r--widget/windows/WinUtils.cpp28
-rw-r--r--widget/windows/WinUtils.h14
3 files changed, 2 insertions, 44 deletions
diff --git a/widget/windows/WinIMEHandler.cpp b/widget/windows/WinIMEHandler.cpp
index 9debaa2dd..f411cdd50 100644
--- a/widget/windows/WinIMEHandler.cpp
+++ b/widget/windows/WinIMEHandler.cpp
@@ -961,8 +961,8 @@ IMEHandler::ShowOnScreenKeyboard()
} else {
PWSTR path = nullptr;
HRESULT hres =
- WinUtils::SHGetKnownFolderPath(FOLDERID_ProgramFilesCommon, 0,
- nullptr, &path);
+ SHGetKnownFolderPath(FOLDERID_ProgramFilesCommon, 0,
+ nullptr, &path);
if (FAILED(hres) || !path) {
return;
}
diff --git a/widget/windows/WinUtils.cpp b/widget/windows/WinUtils.cpp
index bd42e78f6..6d9aab50d 100644
--- a/widget/windows/WinUtils.cpp
+++ b/widget/windows/WinUtils.cpp
@@ -419,8 +419,6 @@ const char FaviconHelper::kShortcutCacheDir[] = "shortcutCache";
// apis available on vista and up.
WinUtils::SHCreateItemFromParsingNamePtr WinUtils::sCreateItemFromParsingName = nullptr;
-WinUtils::SHGetKnownFolderPathPtr WinUtils::sGetKnownFolderPath = nullptr;
-
// We just leak these DLL HMODULEs. There's no point in calling FreeLibrary
// on them during shutdown anyway.
static const wchar_t kShellLibraryName[] = L"shell32.dll";
@@ -1179,32 +1177,6 @@ WinUtils::SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc,
return sCreateItemFromParsingName(pszPath, pbc, riid, ppv);
}
-/* static */
-HRESULT
-WinUtils::SHGetKnownFolderPath(REFKNOWNFOLDERID rfid,
- DWORD dwFlags,
- HANDLE hToken,
- PWSTR *ppszPath)
-{
- if (sGetKnownFolderPath) {
- return sGetKnownFolderPath(rfid, dwFlags, hToken, ppszPath);
- }
-
- if (!sShellDll) {
- sShellDll = ::LoadLibraryW(kShellLibraryName);
- if (!sShellDll) {
- return false;
- }
- }
-
- sGetKnownFolderPath = (SHGetKnownFolderPathPtr)
- GetProcAddress(sShellDll, "SHGetKnownFolderPath");
- if (!sGetKnownFolderPath)
- return E_FAIL;
-
- return sGetKnownFolderPath(rfid, dwFlags, hToken, ppszPath);
-}
-
static BOOL
WINAPI EnumFirstChild(HWND hwnd, LPARAM lParam)
{
diff --git a/widget/windows/WinUtils.h b/widget/windows/WinUtils.h
index 37469ce07..9aa2c1c8a 100644
--- a/widget/windows/WinUtils.h
+++ b/widget/windows/WinUtils.h
@@ -399,14 +399,6 @@ public:
REFIID riid, void **ppv);
/**
- * SHGetKnownFolderPath() calls native SHGetKnownFolderPath()
- * API which is available on Vista and up.
- */
- static HRESULT SHGetKnownFolderPath(REFKNOWNFOLDERID rfid,
- DWORD dwFlags,
- HANDLE hToken,
- PWSTR *ppszPath);
- /**
* GetShellItemPath return the file or directory path of a shell item.
* Internally calls IShellItem's GetDisplayName.
*
@@ -529,12 +521,6 @@ private:
REFIID riid,
void **ppv);
static SHCreateItemFromParsingNamePtr sCreateItemFromParsingName;
- typedef HRESULT (WINAPI * SHGetKnownFolderPathPtr)(REFKNOWNFOLDERID rfid,
- DWORD dwFlags,
- HANDLE hToken,
- PWSTR *ppszPath);
- static SHGetKnownFolderPathPtr sGetKnownFolderPath;
-
static void GetWhitelistedPaths(
nsTArray<mozilla::Pair<nsString,nsDependentString>>& aOutput);
};