Commit 2586a095 authored by Mike McCormack's avatar Mike McCormack Committed by Alexandre Julliard

Make a macro function for unimplemented actions.

Add some more unimplemented action stubs.
parent bb53d096
...@@ -89,6 +89,12 @@ static UINT ACTION_MoveFiles(MSIPACKAGE *package); ...@@ -89,6 +89,12 @@ static UINT ACTION_MoveFiles(MSIPACKAGE *package);
static UINT ACTION_PatchFiles(MSIPACKAGE *package); static UINT ACTION_PatchFiles(MSIPACKAGE *package);
static UINT ACTION_BindImage(MSIPACKAGE *package); static UINT ACTION_BindImage(MSIPACKAGE *package);
static UINT ACTION_IsolateComponents(MSIPACKAGE *package); static UINT ACTION_IsolateComponents(MSIPACKAGE *package);
static UINT ACTION_MigrateFeatureStates( MSIPACKAGE *package );
static UINT ACTION_SelfUnregModules( MSIPACKAGE *package );
static UINT ACTION_InstallServices( MSIPACKAGE *package );
static UINT ACTION_StartServices( MSIPACKAGE *package );
static UINT ACTION_StopServices( MSIPACKAGE *package );
static UINT ACTION_DeleteServices( MSIPACKAGE *package );
/* /*
* consts and values used * consts and values used
...@@ -281,7 +287,7 @@ static struct _actions StandardActions[] = { ...@@ -281,7 +287,7 @@ static struct _actions StandardActions[] = {
{ szCostInitialize, ACTION_CostInitialize }, { szCostInitialize, ACTION_CostInitialize },
{ szCreateFolders, ACTION_CreateFolders }, { szCreateFolders, ACTION_CreateFolders },
{ szCreateShortcuts, ACTION_CreateShortcuts }, { szCreateShortcuts, ACTION_CreateShortcuts },
{ szDeleteServices, NULL}, { szDeleteServices, ACTION_DeleteServices },
{ szDisableRollback, NULL}, { szDisableRollback, NULL},
{ szDuplicateFiles, ACTION_DuplicateFiles }, { szDuplicateFiles, ACTION_DuplicateFiles },
{ szExecuteAction, ACTION_ExecuteAction }, { szExecuteAction, ACTION_ExecuteAction },
...@@ -298,12 +304,12 @@ static struct _actions StandardActions[] = { ...@@ -298,12 +304,12 @@ static struct _actions StandardActions[] = {
{ szInstallValidate, ACTION_InstallValidate }, { szInstallValidate, ACTION_InstallValidate },
{ szIsolateComponents, ACTION_IsolateComponents }, { szIsolateComponents, ACTION_IsolateComponents },
{ szLaunchConditions, ACTION_LaunchConditions }, { szLaunchConditions, ACTION_LaunchConditions },
{ szMigrateFeatureStates, NULL}, { szMigrateFeatureStates, ACTION_MigrateFeatureStates },
{ szMoveFiles, ACTION_MoveFiles }, { szMoveFiles, ACTION_MoveFiles },
{ szMsiPublishAssemblies, NULL}, { szMsiPublishAssemblies, NULL},
{ szMsiUnpublishAssemblies, NULL}, { szMsiUnpublishAssemblies, NULL},
{ szInstallODBC, NULL}, { szInstallODBC, NULL},
{ szInstallServices, NULL}, { szInstallServices, ACTION_InstallServices },
{ szPatchFiles, ACTION_PatchFiles }, { szPatchFiles, ACTION_PatchFiles },
{ szProcessComponents, ACTION_ProcessComponents }, { szProcessComponents, ACTION_ProcessComponents },
{ szPublishComponents, ACTION_PublishComponents }, { szPublishComponents, ACTION_PublishComponents },
...@@ -331,10 +337,10 @@ static struct _actions StandardActions[] = { ...@@ -331,10 +337,10 @@ static struct _actions StandardActions[] = {
{ szRMCCPSearch, NULL}, { szRMCCPSearch, NULL},
{ szScheduleReboot, NULL}, { szScheduleReboot, NULL},
{ szSelfRegModules, ACTION_SelfRegModules }, { szSelfRegModules, ACTION_SelfRegModules },
{ szSelfUnregModules, NULL}, { szSelfUnregModules, ACTION_SelfUnregModules },
{ szSetODBCFolders, NULL}, { szSetODBCFolders, NULL},
{ szStartServices, NULL}, { szStartServices, ACTION_StartServices },
{ szStopServices, NULL}, { szStopServices, ACTION_StopServices },
{ szUnpublishComponents, NULL}, { szUnpublishComponents, NULL},
{ szUnpublishFeatures, NULL}, { szUnpublishFeatures, NULL},
{ szUnregisterClassInfo, NULL}, { szUnregisterClassInfo, NULL},
...@@ -4009,107 +4015,98 @@ static UINT ACTION_PublishComponents(MSIPACKAGE *package) ...@@ -4009,107 +4015,98 @@ static UINT ACTION_PublishComponents(MSIPACKAGE *package)
return rc; return rc;
} }
static UINT ACTION_RemoveIniValues(MSIPACKAGE *package) static UINT msi_unimplemented_action_stub( MSIPACKAGE *package,
LPCSTR action, LPCWSTR table )
{ {
static const WCHAR query[] = static const WCHAR query[] = {
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', 'S','E','L','E','C','T',' ','*',' ',
'R','e','m','o','v','e','I','n','i','F','i','l','e',0 }; 'F','R','O','M',' ','`','%','s','`',0 };
MSIQUERY *view = NULL; MSIQUERY *view = NULL;
DWORD count = 0; DWORD count = 0;
UINT rc; UINT r;
rc = MSI_DatabaseOpenViewW(package->db, query, &view); r = MSI_OpenQuery( package->db, &view, query, table );
if (rc == ERROR_SUCCESS) if (r == ERROR_SUCCESS)
{ {
rc = MSI_IterateRecords(view, &count, NULL, package); r = MSI_IterateRecords(view, &count, NULL, package);
if (count)
FIXME("%lu ignored RemoveIniFile table values\n", count);
msiobj_release(&view->hdr); msiobj_release(&view->hdr);
} }
if (count)
FIXME("%s -> %lu ignored %s table values\n",
action, count, debugstr_w(table));
return ERROR_SUCCESS; return ERROR_SUCCESS;
} }
static UINT ACTION_MoveFiles(MSIPACKAGE *package) static UINT ACTION_RemoveIniValues( MSIPACKAGE *package )
{ {
static const WCHAR query[] = static const WCHAR table[] =
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', {'R','e','m','o','v','e','I','n','i','F','i','l','e',0 };
'M','o','v','e','F','i','l','e',0 }; return msi_unimplemented_action_stub( package, "RemoveIniValues", table );
MSIQUERY *view = NULL; }
DWORD count = 0;
UINT rc;
rc = MSI_DatabaseOpenViewW(package->db, query, &view);
if (rc == ERROR_SUCCESS)
{
rc = MSI_IterateRecords(view, &count, NULL, package);
if (count)
FIXME("%lu ignored MoveFile table values\n", count);
msiobj_release(&view->hdr);
}
return ERROR_SUCCESS; static UINT ACTION_MoveFiles( MSIPACKAGE *package )
{
static const WCHAR table[] = { 'M','o','v','e','F','i','l','e',0 };
return msi_unimplemented_action_stub( package, "MoveFiles", table );
} }
static UINT ACTION_PatchFiles(MSIPACKAGE *package) static UINT ACTION_PatchFiles( MSIPACKAGE *package )
{ {
static const WCHAR query[] = { static const WCHAR table[] = { 'P','a','t','c','h',0 };
'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', return msi_unimplemented_action_stub( package, "PatchFiles", table );
'P','a','t','c','h',0 }; }
MSIQUERY *view = NULL;
DWORD count = 0;
UINT rc;
rc = MSI_DatabaseOpenViewW(package->db, query, &view);
if (rc == ERROR_SUCCESS)
{
rc = MSI_IterateRecords(view, &count, NULL, package);
if (count)
FIXME("%lu ignored Patch table values\n", count);
msiobj_release(&view->hdr);
}
return ERROR_SUCCESS; static UINT ACTION_BindImage( MSIPACKAGE *package )
{
static const WCHAR table[] = { 'B','i','n','d','I','m','a','g','e',0 };
return msi_unimplemented_action_stub( package, "BindImage", table );
} }
static UINT ACTION_BindImage(MSIPACKAGE *package) static UINT ACTION_IsolateComponents( MSIPACKAGE *package )
{ {
static const WCHAR query[] = { static const WCHAR table[] = {
'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', 'I','s','o','l','a','t','e','C','o','m','p','o','n','e','n','t',0 };
'B','i','n','d','I','m','a','g','e',0 }; return msi_unimplemented_action_stub( package, "IsolateComponents", table );
MSIQUERY *view = NULL; }
DWORD count = 0;
UINT rc;
rc = MSI_DatabaseOpenViewW(package->db, query, &view);
if (rc == ERROR_SUCCESS)
{
rc = MSI_IterateRecords(view, &count, NULL, package);
if (count)
FIXME("%lu ignored Patch table values\n", count);
msiobj_release(&view->hdr);
}
return ERROR_SUCCESS; static UINT ACTION_MigrateFeatureStates( MSIPACKAGE *package )
{
static const WCHAR table[] = { 'U','p','g','r','a','d','e',0 };
return msi_unimplemented_action_stub( package, "MigrateFeatureStates", table );
} }
static UINT ACTION_IsolateComponents(MSIPACKAGE *package) static UINT ACTION_SelfUnregModules( MSIPACKAGE *package )
{ {
static const WCHAR query[] = { static const WCHAR table[] = { 'S','e','l','f','R','e','g',0 };
'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ', return msi_unimplemented_action_stub( package, "SelfUnregModules", table );
'I','s','o','l','a','t','e','C','o','m','p','o','n','e','n','t',0 }; }
MSIQUERY *view = NULL;
DWORD count = 0;
UINT rc;
rc = MSI_DatabaseOpenViewW(package->db, query, &view);
if (rc == ERROR_SUCCESS)
{
rc = MSI_IterateRecords(view, &count, NULL, package);
if (count)
FIXME("%lu ignored IsolatedComponents table values\n", count);
msiobj_release(&view->hdr);
}
return ERROR_SUCCESS; static UINT ACTION_InstallServices( MSIPACKAGE *package )
{
static const WCHAR table[] = {
'S','e','r','v','i','c','e','I','n','s','t','a','l','l',0 };
return msi_unimplemented_action_stub( package, "InstallServices", table );
}
static UINT ACTION_StartServices( MSIPACKAGE *package )
{
static const WCHAR table[] = {
'S','e','r','v','i','c','e','C','o','n','t','r','o','l',0 };
return msi_unimplemented_action_stub( package, "StartServices", table );
}
static UINT ACTION_StopServices( MSIPACKAGE *package )
{
static const WCHAR table[] = {
'S','e','r','v','i','c','e','C','o','n','t','r','o','l',0 };
return msi_unimplemented_action_stub( package, "StopServices", table );
}
static UINT ACTION_DeleteServices( MSIPACKAGE *package )
{
static const WCHAR table[] = {
'S','e','r','v','i','c','e','C','o','n','t','r','o','l',0 };
return msi_unimplemented_action_stub( package, "DeleteServices", table );
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment