Warning, file /include/boost/winapi/dll.hpp was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011 #ifndef BOOST_WINAPI_DLL_HPP_INCLUDED_
0012 #define BOOST_WINAPI_DLL_HPP_INCLUDED_
0013
0014 #include <boost/winapi/basic_types.hpp>
0015 #include <boost/winapi/get_proc_address.hpp>
0016 #include <boost/winapi/detail/header.hpp>
0017
0018 #ifdef BOOST_HAS_PRAGMA_ONCE
0019 #pragma once
0020 #endif
0021
0022 #if BOOST_WINAPI_PARTITION_DESKTOP || BOOST_WINAPI_PARTITION_SYSTEM
0023
0024 #if !defined( BOOST_USE_WINDOWS_H )
0025 extern "C" {
0026
0027 #if !defined( BOOST_NO_ANSI_APIS )
0028 BOOST_WINAPI_IMPORT boost::winapi::HMODULE_ BOOST_WINAPI_WINAPI_CC
0029 LoadLibraryA(boost::winapi::LPCSTR_ lpFileName);
0030
0031 BOOST_WINAPI_IMPORT boost::winapi::HMODULE_ BOOST_WINAPI_WINAPI_CC
0032 LoadLibraryExA(
0033 boost::winapi::LPCSTR_ lpFileName,
0034 boost::winapi::HANDLE_ hFile,
0035 boost::winapi::DWORD_ dwFlags
0036 );
0037
0038 BOOST_WINAPI_IMPORT boost::winapi::HMODULE_ BOOST_WINAPI_WINAPI_CC
0039 GetModuleHandleA(boost::winapi::LPCSTR_ lpFileName);
0040
0041 BOOST_WINAPI_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
0042 GetModuleFileNameA(
0043 boost::winapi::HMODULE_ hModule,
0044 boost::winapi::LPSTR_ lpFilename,
0045 boost::winapi::DWORD_ nSize
0046 );
0047 #endif
0048
0049 BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::HMODULE_ BOOST_WINAPI_WINAPI_CC
0050 LoadLibraryW(boost::winapi::LPCWSTR_ lpFileName);
0051
0052 BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::HMODULE_ BOOST_WINAPI_WINAPI_CC
0053 LoadLibraryExW(
0054 boost::winapi::LPCWSTR_ lpFileName,
0055 boost::winapi::HANDLE_ hFile,
0056 boost::winapi::DWORD_ dwFlags
0057 );
0058
0059 BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::HMODULE_ BOOST_WINAPI_WINAPI_CC
0060 GetModuleHandleW(boost::winapi::LPCWSTR_ lpFileName);
0061
0062 BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
0063 GetModuleFileNameW(
0064 boost::winapi::HMODULE_ hModule,
0065 boost::winapi::LPWSTR_ lpFilename,
0066 boost::winapi::DWORD_ nSize
0067 );
0068
0069 struct _MEMORY_BASIC_INFORMATION;
0070
0071 #if !defined( BOOST_WINAPI_IS_MINGW )
0072 BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::SIZE_T_ BOOST_WINAPI_WINAPI_CC
0073 VirtualQuery(
0074 boost::winapi::LPCVOID_ lpAddress,
0075 ::_MEMORY_BASIC_INFORMATION* lpBuffer,
0076 boost::winapi::SIZE_T_ dwLength
0077 );
0078 #else
0079 BOOST_WINAPI_IMPORT boost::winapi::DWORD_ BOOST_WINAPI_WINAPI_CC
0080 VirtualQuery(
0081 boost::winapi::LPCVOID_ lpAddress,
0082 ::_MEMORY_BASIC_INFORMATION* lpBuffer,
0083 boost::winapi::DWORD_ dwLength
0084 );
0085 #endif
0086 }
0087 #endif
0088
0089 namespace boost {
0090 namespace winapi {
0091
0092 typedef struct BOOST_MAY_ALIAS MEMORY_BASIC_INFORMATION_ {
0093 PVOID_ BaseAddress;
0094 PVOID_ AllocationBase;
0095 DWORD_ AllocationProtect;
0096 SIZE_T_ RegionSize;
0097 DWORD_ State;
0098 DWORD_ Protect;
0099 DWORD_ Type;
0100 } *PMEMORY_BASIC_INFORMATION_;
0101
0102 #if defined( BOOST_USE_WINDOWS_H )
0103 BOOST_CONSTEXPR_OR_CONST DWORD_ DONT_RESOLVE_DLL_REFERENCES_ = DONT_RESOLVE_DLL_REFERENCES;
0104 BOOST_CONSTEXPR_OR_CONST DWORD_ LOAD_WITH_ALTERED_SEARCH_PATH_ = LOAD_WITH_ALTERED_SEARCH_PATH;
0105 #else
0106 BOOST_CONSTEXPR_OR_CONST DWORD_ DONT_RESOLVE_DLL_REFERENCES_ = 0x00000001;
0107 BOOST_CONSTEXPR_OR_CONST DWORD_ LOAD_WITH_ALTERED_SEARCH_PATH_ = 0x00000008;
0108 #endif
0109
0110
0111 BOOST_CONSTEXPR_OR_CONST DWORD_ LOAD_IGNORE_CODE_AUTHZ_LEVEL_ = 0x00000010;
0112
0113 #if !defined( BOOST_NO_ANSI_APIS )
0114 using ::LoadLibraryA;
0115 using ::LoadLibraryExA;
0116 using ::GetModuleHandleA;
0117 using ::GetModuleFileNameA;
0118 #endif
0119 using ::LoadLibraryW;
0120 using ::LoadLibraryExW;
0121 using ::GetModuleHandleW;
0122 using ::GetModuleFileNameW;
0123
0124 BOOST_FORCEINLINE SIZE_T_ VirtualQuery(LPCVOID_ lpAddress, MEMORY_BASIC_INFORMATION_* lpBuffer, SIZE_T_ dwLength)
0125 {
0126 return ::VirtualQuery(lpAddress, reinterpret_cast< ::_MEMORY_BASIC_INFORMATION* >(lpBuffer), dwLength);
0127 }
0128
0129 #if !defined( BOOST_NO_ANSI_APIS )
0130 BOOST_FORCEINLINE HMODULE_ load_library(LPCSTR_ lpFileName)
0131 {
0132 return ::LoadLibraryA(lpFileName);
0133 }
0134
0135 BOOST_FORCEINLINE HMODULE_ load_library_ex(LPCSTR_ lpFileName, HANDLE_ hFile, DWORD_ dwFlags)
0136 {
0137 return ::LoadLibraryExA(lpFileName, hFile, dwFlags);
0138 }
0139
0140 BOOST_FORCEINLINE HMODULE_ get_module_handle(LPCSTR_ lpFileName)
0141 {
0142 return ::GetModuleHandleA(lpFileName);
0143 }
0144
0145 BOOST_FORCEINLINE DWORD_ get_module_file_name(HMODULE_ hModule, LPSTR_ lpFilename, DWORD_ nSize)
0146 {
0147 return ::GetModuleFileNameA(hModule, lpFilename, nSize);
0148 }
0149 #endif
0150
0151 BOOST_FORCEINLINE HMODULE_ load_library(LPCWSTR_ lpFileName)
0152 {
0153 return ::LoadLibraryW(lpFileName);
0154 }
0155
0156 BOOST_FORCEINLINE HMODULE_ load_library_ex(LPCWSTR_ lpFileName, HANDLE_ hFile, DWORD_ dwFlags)
0157 {
0158 return ::LoadLibraryExW(lpFileName, hFile, dwFlags);
0159 }
0160
0161 BOOST_FORCEINLINE HMODULE_ get_module_handle(LPCWSTR_ lpFileName)
0162 {
0163 return ::GetModuleHandleW(lpFileName);
0164 }
0165
0166 BOOST_FORCEINLINE DWORD_ get_module_file_name(HMODULE_ hModule, LPWSTR_ lpFilename, DWORD_ nSize)
0167 {
0168 return ::GetModuleFileNameW(hModule, lpFilename, nSize);
0169 }
0170
0171 }
0172 }
0173
0174 #endif
0175
0176
0177
0178
0179
0180 #if BOOST_WINAPI_PARTITION_APP || BOOST_WINAPI_PARTITION_SYSTEM
0181
0182 #if !defined(BOOST_USE_WINDOWS_H)
0183 extern "C" {
0184 BOOST_WINAPI_IMPORT_EXCEPT_WM boost::winapi::BOOL_ BOOST_WINAPI_WINAPI_CC
0185 FreeLibrary(boost::winapi::HMODULE_ hModule);
0186 }
0187 #endif
0188
0189 namespace boost {
0190 namespace winapi {
0191 using ::FreeLibrary;
0192 }
0193 }
0194
0195 #endif
0196
0197 #include <boost/winapi/detail/footer.hpp>
0198
0199 #endif