Exemple #1
0
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 );
}