twain32shim: Windows directory might not be in DLL search path sometimes
So try the full path to TWAIN_32.DLL if first try failed. Change-Id: I9ad262c91ebc7b3df63fbec3ffe34595ffd78c75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/103669 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
parent
528cc99c57
commit
37b81dd54a
3 changed files with 16 additions and 1 deletions
|
@ -37,6 +37,7 @@ $(eval $(call gb_Executable_add_exception_objects,twain32shim,\
|
||||||
))
|
))
|
||||||
|
|
||||||
$(eval $(call gb_Executable_use_system_win32_libs,twain32shim,\
|
$(eval $(call gb_Executable_use_system_win32_libs,twain32shim,\
|
||||||
|
Ole32 \
|
||||||
shell32 \
|
shell32 \
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
|
@ -254,7 +254,20 @@ void ImpTwain::ImplOpenSourceManager()
|
||||||
{
|
{
|
||||||
if (TWAINState::DSMunloaded == m_nCurState)
|
if (TWAINState::DSMunloaded == m_nCurState)
|
||||||
{
|
{
|
||||||
if ((m_hMod = LoadLibraryW(L"TWAIN_32.DLL")))
|
m_hMod = LoadLibraryW(L"TWAIN_32.DLL");
|
||||||
|
if (!m_hMod)
|
||||||
|
{
|
||||||
|
// Windows directory might not be in DLL search path sometimes, so try the full path
|
||||||
|
PWSTR sPath;
|
||||||
|
if (SUCCEEDED(SHGetKnownFolderPath(FOLDERID_Windows, 0, nullptr, &sPath)))
|
||||||
|
{
|
||||||
|
std::wstring sPathAndFile = sPath;
|
||||||
|
CoTaskMemFree(sPath);
|
||||||
|
sPathAndFile += L"\\TWAIN_32.DLL";
|
||||||
|
m_hMod = LoadLibraryW(sPathAndFile.c_str());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (m_hMod)
|
||||||
{
|
{
|
||||||
m_nCurState = TWAINState::DSMloaded;
|
m_nCurState = TWAINState::DSMloaded;
|
||||||
|
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <prewin.h>
|
#include <prewin.h>
|
||||||
|
#include <Shlobj.h>
|
||||||
#include <postwin.h>
|
#include <postwin.h>
|
||||||
#include <exception>
|
#include <exception>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
Loading…
Reference in a new issue