Chris@16
|
1 // dll.hpp --------------------------------------------------------------//
|
Chris@16
|
2
|
Chris@16
|
3 // Copyright 2010 Vicente J. Botet Escriba
|
Chris@16
|
4
|
Chris@16
|
5 // Distributed under the Boost Software License, Version 1.0.
|
Chris@16
|
6 // See http://www.boost.org/LICENSE_1_0.txt
|
Chris@16
|
7
|
Chris@16
|
8
|
Chris@16
|
9 #ifndef BOOST_DETAIL_WINAPI_DLL_HPP
|
Chris@16
|
10 #define BOOST_DETAIL_WINAPI_DLL_HPP
|
Chris@16
|
11
|
Chris@16
|
12 #include <boost/detail/winapi/basic_types.hpp>
|
Chris@16
|
13 #include <boost/detail/winapi/security.hpp>
|
Chris@16
|
14
|
Chris@16
|
15 #ifdef BOOST_HAS_PRAGMA_ONCE
|
Chris@16
|
16 #pragma once
|
Chris@16
|
17 #endif
|
Chris@16
|
18
|
Chris@16
|
19 namespace boost
|
Chris@16
|
20 {
|
Chris@16
|
21 namespace detail
|
Chris@16
|
22 {
|
Chris@16
|
23 namespace winapi
|
Chris@16
|
24 {
|
Chris@16
|
25 #if defined( BOOST_USE_WINDOWS_H )
|
Chris@101
|
26 typedef ::FARPROC FARPROC_;
|
Chris@101
|
27 typedef ::NEARPROC NEARPROC_;
|
Chris@101
|
28 typedef ::PROC PROC_;
|
Chris@101
|
29
|
Chris@101
|
30 # ifdef BOOST_NO_ANSI_APIS
|
Chris@101
|
31 using ::LoadLibraryW;
|
Chris@101
|
32 using ::GetModuleHandleW;
|
Chris@101
|
33 # else
|
Chris@101
|
34 using ::LoadLibraryA;
|
Chris@101
|
35 using ::GetModuleHandleA;
|
Chris@101
|
36 # endif
|
Chris@16
|
37 using ::FreeLibrary;
|
Chris@16
|
38 using ::GetProcAddress;
|
Chris@16
|
39 #else
|
Chris@101
|
40 extern "C" {
|
Chris@101
|
41 # ifdef _WIN64
|
Chris@101
|
42 typedef INT_PTR_ (WINAPI *FARPROC_)();
|
Chris@101
|
43 typedef INT_PTR_ (WINAPI *NEARPROC_)();
|
Chris@101
|
44 typedef INT_PTR_ (WINAPI *PROC_)();
|
Chris@101
|
45 # else
|
Chris@101
|
46 typedef int (WINAPI *FARPROC_)();
|
Chris@101
|
47 typedef int (WINAPI *NEARPROC_)();
|
Chris@101
|
48 typedef int (WINAPI *PROC_)();
|
Chris@101
|
49 # endif // _WIN64
|
Chris@101
|
50
|
Chris@101
|
51 # ifdef BOOST_NO_ANSI_APIS
|
Chris@101
|
52 __declspec(dllimport) HMODULE_ WINAPI
|
Chris@101
|
53 LoadLibraryW(
|
Chris@101
|
54 LPCWSTR_ lpFileName
|
Chris@16
|
55 );
|
Chris@101
|
56 __declspec(dllimport) HMODULE_ WINAPI
|
Chris@101
|
57 GetModuleHandleW(
|
Chris@101
|
58 LPCWSTR_ lpFileName
|
Chris@101
|
59 );
|
Chris@101
|
60 # else
|
Chris@101
|
61 __declspec(dllimport) HMODULE_ WINAPI
|
Chris@101
|
62 LoadLibraryA(
|
Chris@101
|
63 LPCSTR_ lpFileName
|
Chris@101
|
64 );
|
Chris@101
|
65 __declspec(dllimport) HMODULE_ WINAPI
|
Chris@101
|
66 GetModuleHandleA(
|
Chris@101
|
67 LPCSTR_ lpFileName
|
Chris@101
|
68 );
|
Chris@101
|
69 # endif
|
Chris@101
|
70
|
Chris@101
|
71 __declspec(dllimport) BOOL_ WINAPI
|
Chris@16
|
72 FreeLibrary(
|
Chris@16
|
73 HMODULE_ hModule
|
Chris@16
|
74 );
|
Chris@101
|
75 __declspec(dllimport) FARPROC_ WINAPI
|
Chris@16
|
76 GetProcAddress(
|
Chris@16
|
77 HMODULE_ hModule,
|
Chris@16
|
78 LPCSTR_ lpProcName
|
Chris@16
|
79 );
|
Chris@101
|
80 }
|
Chris@16
|
81 #endif
|
Chris@16
|
82 }
|
Chris@16
|
83 }
|
Chris@16
|
84 }
|
Chris@16
|
85
|
Chris@101
|
86 #endif // BOOST_DETAIL_WINAPI_DLL_HPP
|