MSI: various fixes
Mike McCormack
mike at codeweavers.com
Fri Dec 24 00:54:41 CST 2004
ChangeLog:
<aric at codeweavers.com>
* create the shortcut directory if it does not exist
* set the INSTALLLEVEL in CostFInalize if it is not set
-------------- next part --------------
--- dlls/msi/action.c.old 2004-12-24 15:48:04.000000000 +0900
+++ dlls/msi/action.c 2004-12-24 15:52:20.000000000 +0900
@@ -2280,10 +2280,13 @@
'C','o','n','d','i','t','i','o','n',0};
static const WCHAR szCosting[] = {
'C','o','s','t','i','n','g','C','o','m','p','l','e','t','e',0 };
+ static const WCHAR szlevel[] = {
+ 'I','N','S','T','A','L','L','L','E','V','E','L',0};
static const WCHAR szOne[] = { '1', 0 };
UINT rc;
MSIQUERY * view;
DWORD i;
+ LPWSTR level;
TRACE("Building Directory properties\n");
@@ -2485,6 +2488,12 @@
}
MSI_SetPropertyW(package,szCosting,szOne);
+ /* set default run level if not set */
+ level = load_dynamic_property(package,szlevel,NULL);
+ if (!level)
+ MSI_SetPropertyW(package,szlevel, szOne);
+ else
+ HeapFree(GetProcessHeap(),0,level);
return ERROR_SUCCESS;
}
@@ -4404,6 +4413,9 @@
MSI_RecordGetStringW(row,2,buffer,&sz);
target_folder = resolve_folder(package, buffer,FALSE,FALSE,NULL);
+ /* may be needed because of a bug somehwere else */
+ create_full_pathW(target_file);
+
sz = 0x100;
MSI_RecordGetStringW(row,3,buffer,&sz);
reduce_to_longfilename(buffer);
More information about the wine-patches
mailing list