make sure synwinxt.dll can only be loaded on vista and above
This commit is contained in:
parent
b54082a568
commit
a573a44842
|
@ -73,6 +73,16 @@ CMSWindowsHookLibraryLoader::openHookLibrary(const char* name)
|
||||||
HINSTANCE
|
HINSTANCE
|
||||||
CMSWindowsHookLibraryLoader::openShellLibrary(const char* name)
|
CMSWindowsHookLibraryLoader::openShellLibrary(const char* name)
|
||||||
{
|
{
|
||||||
|
OSVERSIONINFO osvi;
|
||||||
|
ZeroMemory(&osvi, sizeof(OSVERSIONINFO));
|
||||||
|
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
|
||||||
|
GetVersionEx(&osvi);
|
||||||
|
|
||||||
|
if (osvi.dwMajorVersion < 6) {
|
||||||
|
LOG((CLOG_INFO "skipping shell library load, %s.dll not supported before vista", name));
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
// load the hook library
|
// load the hook library
|
||||||
HINSTANCE shellLibrary = LoadLibrary(name);
|
HINSTANCE shellLibrary = LoadLibrary(name);
|
||||||
if (shellLibrary == NULL) {
|
if (shellLibrary == NULL) {
|
||||||
|
@ -84,8 +94,8 @@ CMSWindowsHookLibraryLoader::openShellLibrary(const char* name)
|
||||||
m_getDraggingFileDir = (GetDraggingFileDir)GetProcAddress(shellLibrary, "getDraggingFileDir");
|
m_getDraggingFileDir = (GetDraggingFileDir)GetProcAddress(shellLibrary, "getDraggingFileDir");
|
||||||
|
|
||||||
if (m_getDraggingFileDir == NULL) {
|
if (m_getDraggingFileDir == NULL) {
|
||||||
LOG((CLOG_ERR "invalid shell library, use a newer %s.dll", name));
|
LOG((CLOG_ERR "invalid shell library, use a newer %s.dll", name));
|
||||||
throw XScreenOpenFailure();
|
throw XScreenOpenFailure();
|
||||||
}
|
}
|
||||||
|
|
||||||
return shellLibrary;
|
return shellLibrary;
|
||||||
|
|
Loading…
Reference in New Issue