Blame src/cppunit/Win32DynamicLibraryManager.cpp

Packit Service e31359
#include <cppunit/Portability.h>
Packit Service e31359
Packit Service e31359
#if defined(CPPUNIT_HAVE_WIN32_DLL_LOADER)
Packit Service e31359
#include <cppunit/plugin/DynamicLibraryManager.h>
Packit Service e31359
Packit Service e31359
#define WIN32_LEAN_AND_MEAN 
Packit Service e31359
#define NOGDI
Packit Service e31359
#define NOUSER
Packit Service e31359
#define NOKERNEL
Packit Service e31359
#define NOSOUND
Packit Service e31359
#define NOMINMAX
Packit Service e31359
#define BLENDFUNCTION void    // for mingw & gcc  
Packit Service e31359
#include <windows.h>
Packit Service e31359
Packit Service e31359
Packit Service e31359
CPPUNIT_NS_BEGIN
Packit Service e31359
Packit Service e31359
Packit Service e31359
DynamicLibraryManager::LibraryHandle 
Packit Service e31359
DynamicLibraryManager::doLoadLibrary( const std::string &libraryName )
Packit Service e31359
{
Packit Service e31359
  return ::LoadLibraryA( libraryName.c_str() );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
void 
Packit Service e31359
DynamicLibraryManager::doReleaseLibrary()
Packit Service e31359
{
Packit Service e31359
  ::FreeLibrary( (HINSTANCE)m_libraryHandle );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
DynamicLibraryManager::Symbol 
Packit Service e31359
DynamicLibraryManager::doFindSymbol( const std::string &symbol )
Packit Service e31359
{
Packit Service e31359
  return (DynamicLibraryManager::Symbol)::GetProcAddress( 
Packit Service e31359
     (HINSTANCE)m_libraryHandle, 
Packit Service e31359
     symbol.c_str() );
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
std::string 
Packit Service e31359
DynamicLibraryManager::getLastErrorDetail() const
Packit Service e31359
{
Packit Service e31359
  LPVOID lpMsgBuf;
Packit Service e31359
  ::FormatMessageA( 
Packit Service e31359
      FORMAT_MESSAGE_ALLOCATE_BUFFER | 
Packit Service e31359
      FORMAT_MESSAGE_FROM_SYSTEM | 
Packit Service e31359
      FORMAT_MESSAGE_IGNORE_INSERTS,
Packit Service e31359
      NULL,
Packit Service e31359
      GetLastError(),
Packit Service e31359
      MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
Packit Service e31359
      (LPSTR) &lpMsgBuf,
Packit Service e31359
      0,
Packit Service e31359
      NULL 
Packit Service e31359
  );
Packit Service e31359
Packit Service e31359
  std::string message = (LPCSTR)lpMsgBuf;
Packit Service e31359
Packit Service e31359
  // Display the string.
Packit Service e31359
//  ::MessageBoxA( NULL, (LPCSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
Packit Service e31359
Packit Service e31359
  // Free the buffer.
Packit Service e31359
  ::LocalFree( lpMsgBuf );
Packit Service e31359
Packit Service e31359
  return message;
Packit Service e31359
}
Packit Service e31359
Packit Service e31359
Packit Service e31359
CPPUNIT_NS_END
Packit Service e31359
Packit Service e31359
Packit Service e31359
#endif // defined(CPPUNIT_HAVE_WIN32_DLL_LOADER)