diff options
Diffstat (limited to 'src/libs/3rdparty/7zip/unix/CPP/Windows/DLL.h')
-rw-r--r-- | src/libs/3rdparty/7zip/unix/CPP/Windows/DLL.h | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/libs/3rdparty/7zip/unix/CPP/Windows/DLL.h b/src/libs/3rdparty/7zip/unix/CPP/Windows/DLL.h new file mode 100644 index 000000000..2e044ec59 --- /dev/null +++ b/src/libs/3rdparty/7zip/unix/CPP/Windows/DLL.h @@ -0,0 +1,50 @@ +// Windows/DLL.h + +#ifndef __WINDOWS_DLL_H +#define __WINDOWS_DLL_H + +#include "../Common/MyString.h" + +typedef void * HMODULE; +// #define LOAD_LIBRARY_AS_DATAFILE 0 +typedef int (*FARPROC)(); + +namespace NWindows { +namespace NDLL { + +class CLibrary +{ + HMODULE _module; +public: + CLibrary(): _module(NULL) {}; + ~CLibrary() { Free(); } + + operator HMODULE() const { return _module; } + HMODULE* operator&() { return &_module; } + bool IsLoaded() const { return (_module != NULL); }; + + void Attach(HMODULE m) + { + Free(); + _module = m; + } + HMODULE Detach() + { + HMODULE m = _module; + _module = NULL; + return m; + } + + bool Free(); + // bool LoadEx(CFSTR path, DWORD flags = LOAD_LIBRARY_AS_DATAFILE); + bool Load(CFSTR path); + FARPROC GetProc(LPCSTR procName) const; // { return My_GetProcAddress(_module, procName); } +}; + +bool MyGetModuleFileName(FString &path); + +FString GetModuleDirPrefix(); + +}} + +#endif |