void InstallChecker::getInstalledVersion(std::wstring upgradeCode,std::wstring &version) { TCHAR prodCode[40]; version = L"none"; const wchar_t *code =upgradeCode.c_str(); if (ERROR_SUCCESS != MsiEnumRelatedProducts(code,0,0,prodCode)) return; DWORD sz; TCHAR version_prop[100]; sz = sizeof(version_prop) / sizeof(*version_prop); MsiGetProductInfo(prodCode,INSTALLPROPERTY_VERSIONSTRING, version_prop,&sz); version = version_prop; }
QString InstallChecker::installedVersion( const QString &upgradeCode ) { WCHAR prodCode[40]; const WCHAR *code = (const WCHAR*)upgradeCode.constData(); if( ERROR_SUCCESS != MsiEnumRelatedProducts( code, 0, 0, prodCode ) ) return "none"; DWORD sz; WCHAR version_prop[100]; sz = sizeof(version_prop) / sizeof(*version_prop); MsiGetProductInfo( prodCode, INSTALLPROPERTY_VERSIONSTRING, version_prop, &sz ); return QString::fromWCharArray( version_prop ); }