#define _NIMLIB_
#include<shlwapi.h>
#include<khuidefs.h>
#include<netidmgr_intver.h>
DLLVERSIONINFO ver_commctl;
static void
get_dll_version(wchar_t * dllname, DLLVERSIONINFO * pdvi) {
HINSTANCE hdll;
hdll = LoadLibrary(dllname);
ZeroMemory(pdvi, sizeof(*pdvi));
if(hdll) {
DLLGETVERSIONPROC pDllGetVersion;
pDllGetVersion = (DLLGETVERSIONPROC) GetProcAddress(hdll, "DllGetVersion");
if(pDllGetVersion) {
pdvi->cbSize = sizeof(*pdvi);
(*pDllGetVersion)(pdvi);
}
FreeLibrary(hdll);
}
}
KHMEXP void KHMAPI
khm_version_init(void) {
get_dll_version(L"comctl32.dll", &ver_commctl);
}
KHMEXP void KHMAPI
khm_get_lib_version(khm_version * libver, khm_ui_4 * apiver) {
if (!libver)
return;
libver->major = KH_VERSION_MAJOR;
libver->minor = KH_VERSION_MINOR;
libver->patch = KH_VERSION_PATCH;
libver->aux = KH_VERSION_AUX;
if (apiver)
*apiver = KH_VERSION_API;
}
KHMEXP khm_ui_4 KHMAPI
khm_get_commctl_version(khm_version * pdvi) {
if (pdvi) {
pdvi->major = (khm_ui_2) ver_commctl.dwMajorVersion;
pdvi->minor = (khm_ui_2) ver_commctl.dwMinorVersion;
pdvi->patch = (khm_ui_2) ver_commctl.dwBuildNumber;
pdvi->aux = (khm_ui_2) ver_commctl.dwPlatformID;
}
return MAKELONG(ver_commctl.dwMinorVersion, ver_commctl.dwMajorVersion);
}