diff options
author | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:16:21 +0200 |
---|---|---|
committer | Daniel Wilhelm <daniel@wili.li> | 2014-04-18 17:16:21 +0200 |
commit | 88a2d0007db222c339f0b6a17794a2014a241892 (patch) | |
tree | 75105ef49b3a52b7ee176a1ad480e7652e49825f /zen/FindFilePlus/load_dll.h | |
parent | 4.2 (diff) | |
download | FreeFileSync-88a2d0007db222c339f0b6a17794a2014a241892.tar.gz FreeFileSync-88a2d0007db222c339f0b6a17794a2014a241892.tar.bz2 FreeFileSync-88a2d0007db222c339f0b6a17794a2014a241892.zip |
4.3
Diffstat (limited to 'zen/FindFilePlus/load_dll.h')
-rw-r--r-- | zen/FindFilePlus/load_dll.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/zen/FindFilePlus/load_dll.h b/zen/FindFilePlus/load_dll.h new file mode 100644 index 00000000..350de9f8 --- /dev/null +++ b/zen/FindFilePlus/load_dll.h @@ -0,0 +1,46 @@ +// ************************************************************************** +// * This file is part of the FreeFileSync project. It is distributed under * +// * GNU General Public License: http://www.gnu.org/licenses/gpl.html * +// * Copyright (C) 2008-2011 ZenJu (zhnmju123 AT gmx.de) * +// ************************************************************************** + +#ifndef LOAD_DLL_HEADER_0312463214872163832174 +#define LOAD_DLL_HEADER_0312463214872163832174 + +namespace dll +{ +void setWin32Error(unsigned long lastError); + +//NOTE: uses ::GetModuleHandle => call for system DLLs only! +template <class Func> +class SysDllFun +{ +public: + SysDllFun(const wchar_t* systemLibrary, const char* functionName) : + fun(reinterpret_cast<Func>(loadSymbol(systemLibrary, functionName))) {} + + operator Func() const { return fun; } + +private: + Func fun; +}; + + + + + + + + + + + + + + + + +void* /*FARPROC*/ loadSymbol(const wchar_t* libraryName, const char* functionName); +} + +#endif //LOAD_DLL_HEADER_0312463214872163832174 |