// ************************************************************************** // * 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 SysDllFun { public: SysDllFun(const wchar_t* systemLibrary, const char* functionName) : fun(reinterpret_cast(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