Make a macro function for unimplemented actions.
Add some more unimplemented action stubs.
This commit is contained in:
parent
bb53d096b1
commit
2586a0958e
|
@ -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[] = {
|
||||||
{ 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[] = {
|
||||||
{ 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[] = {
|
||||||
{ 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)
|
||||||
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[] =
|
|
||||||
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
|
|
||||||
'R','e','m','o','v','e','I','n','i','F','i','l','e',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 RemoveIniFile table values\n", count);
|
|
||||||
msiobj_release(&view->hdr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static UINT ACTION_MoveFiles(MSIPACKAGE *package)
|
|
||||||
{
|
|
||||||
static const WCHAR query[] =
|
|
||||||
{'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
|
|
||||||
'M','o','v','e','F','i','l','e',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 MoveFile table values\n", count);
|
|
||||||
msiobj_release(&view->hdr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
static UINT ACTION_PatchFiles(MSIPACKAGE *package)
|
|
||||||
{
|
{
|
||||||
static const WCHAR query[] = {
|
static const WCHAR query[] = {
|
||||||
'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
|
'S','E','L','E','C','T',' ','*',' ',
|
||||||
'P','a','t','c','h',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 Patch 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_BindImage(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 };
|
||||||
'B','i','n','d','I','m','a','g','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 Patch table values\n", count);
|
|
||||||
msiobj_release(&view->hdr);
|
|
||||||
}
|
|
||||||
|
|
||||||
return ERROR_SUCCESS;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static UINT ACTION_IsolateComponents(MSIPACKAGE *package)
|
static UINT ACTION_MoveFiles( MSIPACKAGE *package )
|
||||||
{
|
{
|
||||||
static const WCHAR query[] = {
|
static const WCHAR table[] = { 'M','o','v','e','F','i','l','e',0 };
|
||||||
'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
|
return msi_unimplemented_action_stub( package, "MoveFiles", table );
|
||||||
|
}
|
||||||
|
|
||||||
|
static UINT ACTION_PatchFiles( MSIPACKAGE *package )
|
||||||
|
{
|
||||||
|
static const WCHAR table[] = { 'P','a','t','c','h',0 };
|
||||||
|
return msi_unimplemented_action_stub( package, "PatchFiles", table );
|
||||||
|
}
|
||||||
|
|
||||||
|
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_IsolateComponents( MSIPACKAGE *package )
|
||||||
|
{
|
||||||
|
static const WCHAR table[] = {
|
||||||
'I','s','o','l','a','t','e','C','o','m','p','o','n','e','n','t',0 };
|
'I','s','o','l','a','t','e','C','o','m','p','o','n','e','n','t',0 };
|
||||||
MSIQUERY *view = NULL;
|
return msi_unimplemented_action_stub( package, "IsolateComponents", table );
|
||||||
DWORD count = 0;
|
}
|
||||||
UINT rc;
|
|
||||||
|
static UINT ACTION_MigrateFeatureStates( MSIPACKAGE *package )
|
||||||
rc = MSI_DatabaseOpenViewW(package->db, query, &view);
|
{
|
||||||
if (rc == ERROR_SUCCESS)
|
static const WCHAR table[] = { 'U','p','g','r','a','d','e',0 };
|
||||||
{
|
return msi_unimplemented_action_stub( package, "MigrateFeatureStates", table );
|
||||||
rc = MSI_IterateRecords(view, &count, NULL, package);
|
}
|
||||||
if (count)
|
|
||||||
FIXME("%lu ignored IsolatedComponents table values\n", count);
|
static UINT ACTION_SelfUnregModules( MSIPACKAGE *package )
|
||||||
msiobj_release(&view->hdr);
|
{
|
||||||
}
|
static const WCHAR table[] = { 'S','e','l','f','R','e','g',0 };
|
||||||
|
return msi_unimplemented_action_stub( package, "SelfUnregModules", table );
|
||||||
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 );
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue