don't load comctl32.dll, just get the handle of the already loaded instance of it instead, this avoids accidentally loading 2 different versions of this DLL in the same process (see #10203)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@56863 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-11-20 16:45:45 +00:00
parent 59730a00a6
commit e2d4ce7d36
5 changed files with 41 additions and 12 deletions

View File

@@ -966,8 +966,14 @@ int wxApp::GetComCtl32Version()
// we're prepared to handle the errors
wxLogNull noLog;
// the DLL should really be available
wxDynamicLibrary dllComCtl32(_T("comctl32.dll"), wxDL_VERBATIM);
// we don't want to load comctl32.dll, it should be already loaded but,
// depending on the OS version and the presence of the manifest, it can
// be either v5 or v6 and instead of trying to guess it just get the
// handle of the already loaded version
wxDynamicLibrary dllComCtl32(_T("comctl32.dll"),
wxDL_VERBATIM |
wxDL_QUIET |
wxDL_GET_LOADED);
if ( !dllComCtl32.IsLoaded() )
{
s_verComCtl32 = 0;
@@ -1005,6 +1011,9 @@ int wxApp::GetComCtl32Version()
}
}
}
// we shouldn't unload it here as we didn't really load it above
dllComCtl32.Detach();
}
return s_verComCtl32;