diff --git a/dlls/msi/action.c b/dlls/msi/action.c index 84cff54d933..00ae98e2f95 100644 --- a/dlls/msi/action.c +++ b/dlls/msi/action.c @@ -5916,6 +5916,15 @@ static UINT ACTION_PublishProduct(MSIPACKAGE *package) {'P','r','o','d','u','c','t','N','a','m','e',0}; static const WCHAR szPackageCode[] = {'P','a','c','k','a','g','e','C','o','d','e',0}; + static const WCHAR szLanguage[] = + {'L','a','n','g','u','a','g','e',0}; + static const WCHAR szProductLanguage[] = + {'P','r','o','d','u','c','t','L','a','n','g','u','a','g','e',0}; + static const WCHAR szProductIcon[] = + {'P','r','o','d','u','c','t','I','c','o','n',0}; + static const WCHAR szARPProductIcon[] = + {'A','R','P','P','R','O','D','U','C','T','I','C','O','N',0}; + DWORD langid; LPWSTR buffer; DWORD size; MSIHANDLE hDb, hSumInfo; @@ -6016,6 +6025,21 @@ next: size = strlenW(buffer)*sizeof(WCHAR); RegSetValueExW(hukey,szProductName,0,REG_SZ, (LPSTR)buffer,size); HeapFree(GetProcessHeap(),0,buffer); + + buffer = load_dynamic_property(package,szProductLanguage,NULL); + size = sizeof(DWORD); + langid = atoiW(buffer); + RegSetValueExW(hukey,szLanguage,0,REG_DWORD, (BYTE *)&langid,size); + + buffer = load_dynamic_property(package,szARPProductIcon,NULL); + if (buffer) + { + LPWSTR path; + build_icon_path(package,buffer,&path); + size = strlenW(path) * sizeof(WCHAR); + RegSetValueExW(hukey,szProductIcon,0,REG_SZ, (BYTE *)path,size); + } + FIXME("Need to write more keys to the user registry\n"); hDb= alloc_msihandle( &package->db->hdr );