PhysicsFS 2.0.3 imported.
This commit is contained in:
parent
bcc0937726
commit
993311d151
459 changed files with 87785 additions and 0 deletions
115
lib/physfs-2.0.3/lzma/CPP/Windows/DLL.cpp
Normal file
115
lib/physfs-2.0.3/lzma/CPP/Windows/DLL.cpp
Normal file
|
@ -0,0 +1,115 @@
|
|||
// Windows/DLL.cpp
|
||||
|
||||
#include "StdAfx.h"
|
||||
|
||||
#include "DLL.h"
|
||||
#include "Defs.h"
|
||||
#ifndef _UNICODE
|
||||
#include "../Common/StringConvert.h"
|
||||
#endif
|
||||
|
||||
#ifndef _UNICODE
|
||||
extern bool g_IsNT;
|
||||
#endif
|
||||
|
||||
namespace NWindows {
|
||||
namespace NDLL {
|
||||
|
||||
CLibrary::~CLibrary()
|
||||
{
|
||||
Free();
|
||||
}
|
||||
|
||||
bool CLibrary::Free()
|
||||
{
|
||||
if (_module == 0)
|
||||
return true;
|
||||
// MessageBox(0, TEXT(""), TEXT("Free"), 0);
|
||||
// Sleep(5000);
|
||||
if (!::FreeLibrary(_module))
|
||||
return false;
|
||||
_module = 0;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CLibrary::LoadOperations(HMODULE newModule)
|
||||
{
|
||||
if (newModule == NULL)
|
||||
return false;
|
||||
if(!Free())
|
||||
return false;
|
||||
_module = newModule;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool CLibrary::LoadEx(LPCTSTR fileName, DWORD flags)
|
||||
{
|
||||
// MessageBox(0, fileName, TEXT("LoadEx"), 0);
|
||||
return LoadOperations(::LoadLibraryEx(fileName, NULL, flags));
|
||||
}
|
||||
|
||||
bool CLibrary::Load(LPCTSTR fileName)
|
||||
{
|
||||
// MessageBox(0, fileName, TEXT("Load"), 0);
|
||||
// Sleep(5000);
|
||||
// OutputDebugString(fileName);
|
||||
// OutputDebugString(TEXT("\n"));
|
||||
return LoadOperations(::LoadLibrary(fileName));
|
||||
}
|
||||
|
||||
#ifndef _UNICODE
|
||||
static inline UINT GetCurrentCodePage() { return ::AreFileApisANSI() ? CP_ACP : CP_OEMCP; }
|
||||
CSysString GetSysPath(LPCWSTR sysPath)
|
||||
{ return UnicodeStringToMultiByte(sysPath, GetCurrentCodePage()); }
|
||||
|
||||
bool CLibrary::LoadEx(LPCWSTR fileName, DWORD flags)
|
||||
{
|
||||
if (g_IsNT)
|
||||
return LoadOperations(::LoadLibraryExW(fileName, NULL, flags));
|
||||
return LoadEx(GetSysPath(fileName), flags);
|
||||
}
|
||||
bool CLibrary::Load(LPCWSTR fileName)
|
||||
{
|
||||
if (g_IsNT)
|
||||
return LoadOperations(::LoadLibraryW(fileName));
|
||||
return Load(GetSysPath(fileName));
|
||||
}
|
||||
#endif
|
||||
|
||||
bool MyGetModuleFileName(HMODULE hModule, CSysString &result)
|
||||
{
|
||||
result.Empty();
|
||||
TCHAR fullPath[MAX_PATH + 2];
|
||||
DWORD size = ::GetModuleFileName(hModule, fullPath, MAX_PATH + 1);
|
||||
if (size <= MAX_PATH && size != 0)
|
||||
{
|
||||
result = fullPath;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifndef _UNICODE
|
||||
bool MyGetModuleFileName(HMODULE hModule, UString &result)
|
||||
{
|
||||
result.Empty();
|
||||
if (g_IsNT)
|
||||
{
|
||||
wchar_t fullPath[MAX_PATH + 2];
|
||||
DWORD size = ::GetModuleFileNameW(hModule, fullPath, MAX_PATH + 1);
|
||||
if (size <= MAX_PATH && size != 0)
|
||||
{
|
||||
result = fullPath;
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
CSysString resultSys;
|
||||
if (!MyGetModuleFileName(hModule, resultSys))
|
||||
return false;
|
||||
result = MultiByteToUnicodeString(resultSys, GetCurrentCodePage());
|
||||
return true;
|
||||
}
|
||||
#endif
|
||||
|
||||
}}
|
Loading…
Add table
Add a link
Reference in a new issue