msi: Use an enum to represent folder states.
This commit is contained in:
parent
8ff57beb0e
commit
2cbeb20d39
|
@ -877,8 +877,8 @@ static UINT ITERATE_CreateFolders(MSIRECORD *row, LPVOID param)
|
||||||
TRACE("folder is %s\n", debugstr_w(full_path));
|
TRACE("folder is %s\n", debugstr_w(full_path));
|
||||||
|
|
||||||
folder = msi_get_loaded_folder( package, dir );
|
folder = msi_get_loaded_folder( package, dir );
|
||||||
if (folder->State == 0) msi_create_full_path( full_path );
|
if (folder->State == FOLDER_STATE_UNINITIALIZED) msi_create_full_path( full_path );
|
||||||
folder->State = 3;
|
folder->State = FOLDER_STATE_CREATED_PERSISTENT;
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -946,7 +946,7 @@ static UINT ITERATE_RemoveFolders( MSIRECORD *row, LPVOID param )
|
||||||
|
|
||||||
RemoveDirectoryW( full_path );
|
RemoveDirectoryW( full_path );
|
||||||
folder = msi_get_loaded_folder( package, dir );
|
folder = msi_get_loaded_folder( package, dir );
|
||||||
folder->State = 0;
|
folder->State = FOLDER_STATE_REMOVED;
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -239,10 +239,10 @@ static UINT msi_create_directory( MSIPACKAGE *package, const WCHAR *dir )
|
||||||
if (!install_path) return ERROR_FUNCTION_FAILED;
|
if (!install_path) return ERROR_FUNCTION_FAILED;
|
||||||
|
|
||||||
folder = msi_get_loaded_folder( package, dir );
|
folder = msi_get_loaded_folder( package, dir );
|
||||||
if (folder->State == 0)
|
if (folder->State == FOLDER_STATE_UNINITIALIZED)
|
||||||
{
|
{
|
||||||
msi_create_full_path( install_path );
|
msi_create_full_path( install_path );
|
||||||
folder->State = 2;
|
folder->State = FOLDER_STATE_CREATED;
|
||||||
}
|
}
|
||||||
return ERROR_SUCCESS;
|
return ERROR_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -490,6 +490,15 @@ typedef struct tagFeatureList
|
||||||
MSIFEATURE *feature;
|
MSIFEATURE *feature;
|
||||||
} FeatureList;
|
} FeatureList;
|
||||||
|
|
||||||
|
enum folder_state
|
||||||
|
{
|
||||||
|
FOLDER_STATE_UNINITIALIZED,
|
||||||
|
FOLDER_STATE_EXISTS,
|
||||||
|
FOLDER_STATE_CREATED,
|
||||||
|
FOLDER_STATE_CREATED_PERSISTENT,
|
||||||
|
FOLDER_STATE_REMOVED
|
||||||
|
};
|
||||||
|
|
||||||
typedef struct tagMSIFOLDER
|
typedef struct tagMSIFOLDER
|
||||||
{
|
{
|
||||||
struct list entry;
|
struct list entry;
|
||||||
|
@ -502,13 +511,9 @@ typedef struct tagMSIFOLDER
|
||||||
|
|
||||||
LPWSTR ResolvedTarget;
|
LPWSTR ResolvedTarget;
|
||||||
LPWSTR ResolvedSource;
|
LPWSTR ResolvedSource;
|
||||||
INT State;
|
enum folder_state State;
|
||||||
/* 0 = uninitialized */
|
INT Cost;
|
||||||
/* 1 = existing */
|
INT Space;
|
||||||
/* 2 = created remove if empty */
|
|
||||||
/* 3 = created persist if empty */
|
|
||||||
INT Cost;
|
|
||||||
INT Space;
|
|
||||||
} MSIFOLDER;
|
} MSIFOLDER;
|
||||||
|
|
||||||
typedef struct tagFolderList
|
typedef struct tagFolderList
|
||||||
|
|
Loading…
Reference in New Issue