[MSIEXEC]

* Sync with Wine 1.7.27.
CORE-8540

svn path=/trunk/; revision=64655
This commit is contained in:
Amine Khaldi 2014-10-10 11:41:31 +00:00
parent fd993b97d5
commit 8b43551c8c
3 changed files with 27 additions and 16 deletions

View file

@ -418,11 +418,12 @@ static int chomp( WCHAR *str )
{
enum chomp_state state = cs_token;
WCHAR *p, *out;
int count = 1, ignore;
int count = 1;
BOOL ignore;
for( p = str, out = str; *p; p++ )
{
ignore = 1;
ignore = TRUE;
switch( state )
{
case cs_whitespace:
@ -436,7 +437,7 @@ static int chomp( WCHAR *str )
break;
default:
count++;
ignore = 0;
ignore = FALSE;
state = cs_token;
}
break;
@ -452,7 +453,7 @@ static int chomp( WCHAR *str )
*out++ = 0;
break;
default:
ignore = 0;
ignore = FALSE;
}
break;
@ -463,7 +464,7 @@ static int chomp( WCHAR *str )
state = cs_token;
break;
default:
ignore = 0;
ignore = FALSE;
}
break;
}
@ -626,6 +627,7 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
WINE_TRACE("argvW[%d] = %s\n", i, wine_dbgstr_w(argvW[i]));
PackageName = argvW[i];
StringListAppend(&property_list, ActionAdmin);
WINE_FIXME("Administrative installs are not currently supported\n");
}
else if(msi_option_prefix(argvW[i], "f"))
{
@ -906,13 +908,18 @@ int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine
}
else if(msi_strequal(argvW[i]+2, "b+!"))
{
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_ENDDIALOG;
WINE_FIXME("Unknown modifier: !\n");
WINE_FIXME("Unhandled modifier: !\n");
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_ENDDIALOG|INSTALLUILEVEL_HIDECANCEL;
}
else if(msi_strequal(argvW[i]+2, "b-!"))
{
WINE_FIXME("Unhandled modifier: !\n");
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_PROGRESSONLY|INSTALLUILEVEL_HIDECANCEL;
}
else if(msi_strequal(argvW[i]+2, "b!"))
{
InstallUILevel = INSTALLUILEVEL_BASIC;
WINE_FIXME("Unknown modifier: !\n");
WINE_FIXME("Unhandled modifier: !\n");
InstallUILevel = INSTALLUILEVEL_BASIC|INSTALLUILEVEL_HIDECANCEL;
}
else
{

View file

@ -73,6 +73,8 @@ static BOOL UpdateSCMStatus(DWORD dwCurrentState, DWORD dwWin32ExitCode,
static void WINAPI ServiceCtrlHandler(DWORD code)
{
DWORD state = SERVICE_RUNNING;
WINE_TRACE("%u\n", code);
switch (code)
@ -81,21 +83,19 @@ static void WINAPI ServiceCtrlHandler(DWORD code)
case SERVICE_CONTROL_STOP:
UpdateSCMStatus(SERVICE_STOP_PENDING, NO_ERROR, 0);
KillService();
return;
state = SERVICE_STOPPED;
break;
default:
fprintf(stderr, "Unhandled service control code: %u\n", code);
break;
}
UpdateSCMStatus(SERVICE_RUNNING, NO_ERROR, 0);
UpdateSCMStatus(state, NO_ERROR, 0);
}
static DWORD WINAPI ServiceExecutionThread(LPVOID param)
{
while (TRUE)
{
/* do nothing */
}
WaitForSingleObject(kill_event, INFINITE);
return 0;
}
@ -130,12 +130,14 @@ static void WINAPI ServiceMain(DWORD argc, LPSTR *argv)
{
fprintf(stderr, "Failed to create event\n");
KillService();
UpdateSCMStatus(SERVICE_STOPPED, NO_ERROR, 0);
return;
}
if (!StartServiceThread())
{
KillService();
UpdateSCMStatus(SERVICE_STOPPED, NO_ERROR, 0);
return;
}
@ -143,6 +145,8 @@ static void WINAPI ServiceMain(DWORD argc, LPSTR *argv)
WaitForSingleObject(kill_event, INFINITE);
KillService();
UpdateSCMStatus(SERVICE_STOPPED, NO_ERROR, 0);
}
DWORD DoService(void)

View file

@ -246,7 +246,7 @@ reactos/base/applications/winhlp32 # Synced to Wine-1.7.27
reactos/base/applications/wordpad # Synced to Wine-1.7.9
reactos/base/services/rpcss # Synced to Wine-1.7.27
reactos/base/system/expand # Synced to Wine-1.7.1
reactos/base/system/msiexec # Synced to Wine-1.7.1
reactos/base/system/msiexec # Synced to Wine-1.7.27
reactos/modules/rosapps/winfile # Autosync
In addition the following libs, dlls and source files are mostly based on code ported