OLD | NEW |
| (Empty) |
1 // Windows/DLL.h | |
2 | |
3 #ifndef __WINDOWS_DLL_H | |
4 #define __WINDOWS_DLL_H | |
5 | |
6 #include "../Common/MyString.h" | |
7 | |
8 namespace NWindows { | |
9 namespace NDLL { | |
10 | |
11 class CLibrary | |
12 { | |
13 bool LoadOperations(HMODULE newModule); | |
14 protected: | |
15 HMODULE _module; | |
16 public: | |
17 operator HMODULE() const { return _module; } | |
18 HMODULE* operator&() { return &_module; } | |
19 | |
20 CLibrary():_module(NULL) {}; | |
21 ~CLibrary(); | |
22 void Attach(HMODULE m) | |
23 { | |
24 Free(); | |
25 _module = m; | |
26 } | |
27 HMODULE Detach() | |
28 { | |
29 HMODULE m = _module; | |
30 _module = NULL; | |
31 return m; | |
32 } | |
33 | |
34 // operator HMODULE() const { return _module; }; | |
35 bool IsLoaded() const { return (_module != NULL); }; | |
36 bool Free(); | |
37 bool LoadEx(LPCTSTR fileName, DWORD flags = LOAD_LIBRARY_AS_DATAFILE); | |
38 bool Load(LPCTSTR fileName); | |
39 #ifndef _UNICODE | |
40 bool LoadEx(LPCWSTR fileName, DWORD flags = LOAD_LIBRARY_AS_DATAFILE); | |
41 bool Load(LPCWSTR fileName); | |
42 #endif | |
43 FARPROC GetProcAddress(LPCSTR procName) const | |
44 { return ::GetProcAddress(_module, procName); } | |
45 }; | |
46 | |
47 bool MyGetModuleFileName(HMODULE hModule, CSysString &result); | |
48 #ifndef _UNICODE | |
49 bool MyGetModuleFileName(HMODULE hModule, UString &result); | |
50 #endif | |
51 | |
52 }} | |
53 | |
54 #endif | |
OLD | NEW |