mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 06:33:01 +00:00
sync msi with wine 1.1.34
svn path=/trunk/; revision=44440
This commit is contained in:
parent
88f7d4c1bb
commit
f0c623ad45
9 changed files with 50 additions and 23 deletions
|
@ -716,7 +716,6 @@ static UINT msi_set_context(MSIPACKAGE *package)
|
||||||
package->Context = MSIINSTALLCONTEXT_MACHINE;
|
package->Context = MSIINSTALLCONTEXT_MACHINE;
|
||||||
}
|
}
|
||||||
|
|
||||||
MSI_SetPropertyW(package, szAllUsers, szOne);
|
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1498,7 +1498,7 @@ static void variant_from_registry_value(VARIANT *pVarResult, DWORD dwType, LPBYT
|
||||||
case REG_EXPAND_SZ:
|
case REG_EXPAND_SZ:
|
||||||
if (!(dwNewSize = ExpandEnvironmentStringsW(szString, szNewString, dwNewSize)))
|
if (!(dwNewSize = ExpandEnvironmentStringsW(szString, szNewString, dwNewSize)))
|
||||||
ERR("ExpandEnvironmentStrings returned error %d\n", GetLastError());
|
ERR("ExpandEnvironmentStrings returned error %d\n", GetLastError());
|
||||||
else if (!(szNewString = msi_alloc(dwNewSize)))
|
else if (!(szNewString = msi_alloc(dwNewSize * sizeof(WCHAR))))
|
||||||
ERR("Out of memory\n");
|
ERR("Out of memory\n");
|
||||||
else if (!(dwNewSize = ExpandEnvironmentStringsW(szString, szNewString, dwNewSize)))
|
else if (!(dwNewSize = ExpandEnvironmentStringsW(szString, szNewString, dwNewSize)))
|
||||||
ERR("ExpandEnvironmentStrings returned error %d\n", GetLastError());
|
ERR("ExpandEnvironmentStrings returned error %d\n", GetLastError());
|
||||||
|
|
|
@ -717,19 +717,10 @@ BOOL WINAPI MsiGetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode)
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
* MsiSetMode (MSI.@)
|
* MsiSetMode (MSI.@)
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI MsiSetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode, BOOL fState)
|
UINT WINAPI MsiSetMode(MSIHANDLE hInstall, MSIRUNMODE iRunMode, BOOL fState)
|
||||||
{
|
{
|
||||||
switch (iRunMode)
|
FIXME("%d %d %d\n", hInstall, iRunMode, fState);
|
||||||
{
|
return ERROR_SUCCESS;
|
||||||
case MSIRUNMODE_RESERVED11:
|
|
||||||
case MSIRUNMODE_WINDOWS9X:
|
|
||||||
case MSIRUNMODE_RESERVED14:
|
|
||||||
case MSIRUNMODE_RESERVED15:
|
|
||||||
return FALSE;
|
|
||||||
default:
|
|
||||||
FIXME("%d %d %d\n", hInstall, iRunMode, fState);
|
|
||||||
}
|
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/***********************************************************************
|
/***********************************************************************
|
||||||
|
|
|
@ -345,7 +345,7 @@ static VOID set_installer_properties(MSIPACKAGE *package)
|
||||||
WCHAR *ptr;
|
WCHAR *ptr;
|
||||||
OSVERSIONINFOEXW OSVersion;
|
OSVERSIONINFOEXW OSVersion;
|
||||||
MEMORYSTATUSEX msex;
|
MEMORYSTATUSEX msex;
|
||||||
DWORD verval;
|
DWORD verval, len;
|
||||||
WCHAR verstr[10], bufstr[20];
|
WCHAR verstr[10], bufstr[20];
|
||||||
HDC dc;
|
HDC dc;
|
||||||
HKEY hkey;
|
HKEY hkey;
|
||||||
|
@ -445,11 +445,12 @@ static VOID set_installer_properties(MSIPACKAGE *package)
|
||||||
static const WCHAR szUserLangID[] = {'U','s','e','r','L','a','n','g','u','a','g','e','I','D',0};
|
static const WCHAR szUserLangID[] = {'U','s','e','r','L','a','n','g','u','a','g','e','I','D',0};
|
||||||
static const WCHAR szSystemLangID[] = {'S','y','s','t','e','m','L','a','n','g','u','a','g','e','I','D',0};
|
static const WCHAR szSystemLangID[] = {'S','y','s','t','e','m','L','a','n','g','u','a','g','e','I','D',0};
|
||||||
static const WCHAR szProductState[] = {'P','r','o','d','u','c','t','S','t','a','t','e',0};
|
static const WCHAR szProductState[] = {'P','r','o','d','u','c','t','S','t','a','t','e',0};
|
||||||
|
static const WCHAR szLogonUser[] = {'L','o','g','o','n','U','s','e','r',0};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Other things that probably should be set:
|
* Other things that probably should be set:
|
||||||
*
|
*
|
||||||
* ComputerName LogonUser VirtualMemory
|
* ComputerName VirtualMemory
|
||||||
* ShellAdvSupport DefaultUIFont PackagecodeChanging
|
* ShellAdvSupport DefaultUIFont PackagecodeChanging
|
||||||
* CaptionHeight BorderTop BorderSide TextHeight
|
* CaptionHeight BorderTop BorderSide TextHeight
|
||||||
* RedirectedDllSupport
|
* RedirectedDllSupport
|
||||||
|
@ -653,6 +654,18 @@ static VOID set_installer_properties(MSIPACKAGE *package)
|
||||||
|
|
||||||
sprintfW(bufstr, szIntFormat, MsiQueryProductStateW(package->ProductCode));
|
sprintfW(bufstr, szIntFormat, MsiQueryProductStateW(package->ProductCode));
|
||||||
MSI_SetPropertyW( package, szProductState, bufstr );
|
MSI_SetPropertyW( package, szProductState, bufstr );
|
||||||
|
|
||||||
|
len = 0;
|
||||||
|
if (!GetUserNameW( NULL, &len ) && GetLastError() == ERROR_MORE_DATA)
|
||||||
|
{
|
||||||
|
WCHAR *username;
|
||||||
|
if ((username = HeapAlloc( GetProcessHeap(), 0, len * sizeof(WCHAR) )))
|
||||||
|
{
|
||||||
|
if (GetUserNameW( username, &len ))
|
||||||
|
MSI_SetPropertyW( package, szLogonUser, username );
|
||||||
|
HeapFree( GetProcessHeap(), 0, username );
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT msi_load_summary_properties( MSIPACKAGE *package )
|
static UINT msi_load_summary_properties( MSIPACKAGE *package )
|
||||||
|
|
|
@ -368,12 +368,14 @@ static const MSIVIEWOPS select_ops =
|
||||||
NULL,
|
NULL,
|
||||||
};
|
};
|
||||||
|
|
||||||
static UINT SELECT_AddColumn( MSISELECTVIEW *sv, LPCWSTR name )
|
static UINT SELECT_AddColumn( MSISELECTVIEW *sv, LPCWSTR name,
|
||||||
|
LPCWSTR table_name )
|
||||||
{
|
{
|
||||||
UINT r, n=0;
|
UINT r, n=0;
|
||||||
MSIVIEW *table;
|
MSIVIEW *table;
|
||||||
|
|
||||||
TRACE("%p adding %s\n", sv, debugstr_w( name ) );
|
TRACE("%p adding %s.%s\n", sv, debugstr_w( table_name ),
|
||||||
|
debugstr_w( name ));
|
||||||
|
|
||||||
if( sv->view.ops != &select_ops )
|
if( sv->view.ops != &select_ops )
|
||||||
return ERROR_FUNCTION_FAILED;
|
return ERROR_FUNCTION_FAILED;
|
||||||
|
@ -389,7 +391,7 @@ static UINT SELECT_AddColumn( MSISELECTVIEW *sv, LPCWSTR name )
|
||||||
if( sv->num_cols >= sv->max_cols )
|
if( sv->num_cols >= sv->max_cols )
|
||||||
return ERROR_FUNCTION_FAILED;
|
return ERROR_FUNCTION_FAILED;
|
||||||
|
|
||||||
r = VIEW_find_column( table, name, NULL, &n );
|
r = VIEW_find_column( table, name, table_name, &n );
|
||||||
if( r != ERROR_SUCCESS )
|
if( r != ERROR_SUCCESS )
|
||||||
return r;
|
return r;
|
||||||
|
|
||||||
|
@ -433,7 +435,7 @@ UINT SELECT_CreateView( MSIDATABASE *db, MSIVIEW **view, MSIVIEW *table,
|
||||||
|
|
||||||
while( columns )
|
while( columns )
|
||||||
{
|
{
|
||||||
r = SELECT_AddColumn( sv, columns->column );
|
r = SELECT_AddColumn( sv, columns->column, columns->table );
|
||||||
if( r )
|
if( r )
|
||||||
break;
|
break;
|
||||||
columns = columns->next;
|
columns = columns->next;
|
||||||
|
|
|
@ -296,6 +296,7 @@ static UINT STORAGES_get_column_info(struct tagMSIVIEW *view, UINT n,
|
||||||
|
|
||||||
static const WCHAR Name[] = {'N','a','m','e',0};
|
static const WCHAR Name[] = {'N','a','m','e',0};
|
||||||
static const WCHAR Data[] = {'D','a','t','a',0};
|
static const WCHAR Data[] = {'D','a','t','a',0};
|
||||||
|
static const WCHAR _Storages[] = {'_','S','t','o','r','a','g','e','s',0};
|
||||||
|
|
||||||
TRACE("(%p, %d, %p, %p, %p, %p)\n", view, n, name, type, temporary,
|
TRACE("(%p, %d, %p, %p, %p, %p)\n", view, n, name, type, temporary,
|
||||||
table_name);
|
table_name);
|
||||||
|
@ -322,6 +323,16 @@ static UINT STORAGES_get_column_info(struct tagMSIVIEW *view, UINT n,
|
||||||
if (!*name) return ERROR_FUNCTION_FAILED;
|
if (!*name) return ERROR_FUNCTION_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (table_name)
|
||||||
|
{
|
||||||
|
*table_name = strdupW(_Storages);
|
||||||
|
if (!*table_name)
|
||||||
|
{
|
||||||
|
msi_free(name);
|
||||||
|
return ERROR_FUNCTION_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (temporary)
|
if (temporary)
|
||||||
*temporary = FALSE;
|
*temporary = FALSE;
|
||||||
|
|
||||||
|
|
|
@ -262,6 +262,7 @@ static UINT STREAMS_get_column_info(struct tagMSIVIEW *view, UINT n,
|
||||||
|
|
||||||
static const WCHAR Name[] = {'N','a','m','e',0};
|
static const WCHAR Name[] = {'N','a','m','e',0};
|
||||||
static const WCHAR Data[] = {'D','a','t','a',0};
|
static const WCHAR Data[] = {'D','a','t','a',0};
|
||||||
|
static const WCHAR _Streams[] = {'_','S','t','r','e','a','m','s',0};
|
||||||
|
|
||||||
TRACE("(%p, %d, %p, %p, %p, %p)\n", view, n, name, type, temporary,
|
TRACE("(%p, %d, %p, %p, %p, %p)\n", view, n, name, type, temporary,
|
||||||
table_name);
|
table_name);
|
||||||
|
@ -288,6 +289,16 @@ static UINT STREAMS_get_column_info(struct tagMSIVIEW *view, UINT n,
|
||||||
if (!*name) return ERROR_FUNCTION_FAILED;
|
if (!*name) return ERROR_FUNCTION_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (table_name)
|
||||||
|
{
|
||||||
|
*table_name = strdupW(_Streams);
|
||||||
|
if (!*table_name)
|
||||||
|
{
|
||||||
|
msi_free(name);
|
||||||
|
return ERROR_FUNCTION_FAILED;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (temporary)
|
if (temporary)
|
||||||
*temporary = FALSE;
|
*temporary = FALSE;
|
||||||
|
|
||||||
|
|
|
@ -1201,7 +1201,7 @@ static UINT msi_stream_name( const MSITABLEVIEW *tv, UINT row, LPWSTR *pstname )
|
||||||
switch( n )
|
switch( n )
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
sprintfW( number, fmt, ival^0x8000 );
|
sprintfW( number, fmt, ival-0x8000 );
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
sprintfW( number, fmt, ival^0x80000000 );
|
sprintfW( number, fmt, ival^0x80000000 );
|
||||||
|
@ -2573,7 +2573,7 @@ static MSIRECORD *msi_get_transform_record( const MSITABLEVIEW *tv, const string
|
||||||
case 2:
|
case 2:
|
||||||
val = read_raw_int(rawdata, ofs, n);
|
val = read_raw_int(rawdata, ofs, n);
|
||||||
if (val)
|
if (val)
|
||||||
MSI_RecordSetInteger( rec, i+1, val^0x8000 );
|
MSI_RecordSetInteger( rec, i+1, val-0x8000 );
|
||||||
TRACE(" field %d [0x%04x]\n", i+1, val );
|
TRACE(" field %d [0x%04x]\n", i+1, val );
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
|
|
|
@ -301,7 +301,7 @@ UINT WINAPI MsiSummaryInfoGetPropertyCount(MSIHANDLE,PUINT);
|
||||||
|
|
||||||
UINT WINAPI MsiEnableUIPreview(MSIHANDLE, MSIHANDLE*);
|
UINT WINAPI MsiEnableUIPreview(MSIHANDLE, MSIHANDLE*);
|
||||||
BOOL WINAPI MsiGetMode(MSIHANDLE, MSIRUNMODE);
|
BOOL WINAPI MsiGetMode(MSIHANDLE, MSIRUNMODE);
|
||||||
BOOL WINAPI MsiSetMode(MSIHANDLE, MSIRUNMODE, BOOL);
|
UINT WINAPI MsiSetMode(MSIHANDLE, MSIRUNMODE, BOOL);
|
||||||
|
|
||||||
UINT WINAPI MsiViewModify(MSIHANDLE, MSIMODIFY, MSIHANDLE);
|
UINT WINAPI MsiViewModify(MSIHANDLE, MSIMODIFY, MSIHANDLE);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue