1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/other-licenses/7zstub/src/Windows/DLL.h Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,54 @@ 1.4 +// Windows/DLL.h 1.5 + 1.6 +#ifndef __WINDOWS_DLL_H 1.7 +#define __WINDOWS_DLL_H 1.8 + 1.9 +#include "../Common/String.h" 1.10 + 1.11 +namespace NWindows { 1.12 +namespace NDLL { 1.13 + 1.14 +class CLibrary 1.15 +{ 1.16 + bool LoadOperations(HMODULE newModule); 1.17 +protected: 1.18 + HMODULE _module; 1.19 +public: 1.20 + operator HMODULE() const { return _module; } 1.21 + HMODULE* operator&() { return &_module; } 1.22 + 1.23 + CLibrary():_module(NULL) {}; 1.24 + ~CLibrary(); 1.25 + void Attach(HMODULE m) 1.26 + { 1.27 + Free(); 1.28 + _module = m; 1.29 + } 1.30 + HMODULE Detach() 1.31 + { 1.32 + HMODULE m = _module; 1.33 + _module = NULL; 1.34 + return m; 1.35 + } 1.36 + 1.37 + // operator HMODULE() const { return _module; }; 1.38 + // bool IsLoaded() const { return (_module != NULL); }; 1.39 + bool Free(); 1.40 + bool LoadEx(LPCTSTR fileName, DWORD flags = LOAD_LIBRARY_AS_DATAFILE); 1.41 + bool Load(LPCTSTR fileName); 1.42 + #ifndef _UNICODE 1.43 + bool LoadEx(LPCWSTR fileName, DWORD flags = LOAD_LIBRARY_AS_DATAFILE); 1.44 + bool Load(LPCWSTR fileName); 1.45 + #endif 1.46 + FARPROC GetProcAddress(LPCSTR procName) const 1.47 + { return ::GetProcAddress(_module, procName); } 1.48 +}; 1.49 + 1.50 +bool MyGetModuleFileName(HMODULE hModule, CSysString &result); 1.51 +#ifndef _UNICODE 1.52 +bool MyGetModuleFileName(HMODULE hModule, UString &result); 1.53 +#endif 1.54 + 1.55 +}} 1.56 + 1.57 +#endif