mirror of
https://gitlab.winehq.org/wine/wine.git
synced 2024-11-19 17:06:04 -07:00
Compare commits
2 commits
63a5064bbf
...
2a4fc095ee
Author | SHA1 | Date | |
---|---|---|---|
|
2a4fc095ee | ||
|
fa22986ace |
4 changed files with 22 additions and 3 deletions
|
@ -229,7 +229,7 @@ UINT WINAPI MsiInstallProductW(LPCWSTR szPackagePath, LPCWSTR szCommandLine)
|
|||
{
|
||||
MSIPACKAGE *package = NULL;
|
||||
const WCHAR *reinstallmode;
|
||||
DWORD options = 0;
|
||||
DWORD options = WINE_OPENPACKAGEFLAGS_READONLY;
|
||||
UINT r, len;
|
||||
|
||||
TRACE("%s %s\n",debugstr_w(szPackagePath), debugstr_w(szCommandLine));
|
||||
|
|
|
@ -906,6 +906,7 @@ extern UINT MSI_SetInstallLevel( MSIPACKAGE *package, int iInstallLevel );
|
|||
|
||||
/* package internals */
|
||||
#define WINE_OPENPACKAGEFLAGS_RECACHE 0x80000000
|
||||
#define WINE_OPENPACKAGEFLAGS_READONLY 0x40000000
|
||||
extern MSIPACKAGE *MSI_CreatePackage( MSIDATABASE * );
|
||||
extern UINT MSI_OpenPackageW( LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage );
|
||||
extern UINT MSI_SetTargetPathW( MSIPACKAGE *, LPCWSTR, LPCWSTR );
|
||||
|
|
|
@ -1327,7 +1327,7 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
|
|||
MSIRECORD *data_row, *info_row;
|
||||
UINT r;
|
||||
WCHAR localfile[MAX_PATH], cachefile[MAX_PATH];
|
||||
LPCWSTR file = szPackage;
|
||||
LPCWSTR file = szPackage, mode;
|
||||
DWORD index = 0;
|
||||
MSISUMMARYINFO *si;
|
||||
BOOL delete_on_close = FALSE;
|
||||
|
@ -1405,7 +1405,8 @@ UINT MSI_OpenPackageW(LPCWSTR szPackage, DWORD dwOptions, MSIPACKAGE **pPackage)
|
|||
product_version = get_product_version( db );
|
||||
msiobj_release( &db->hdr );
|
||||
TRACE("opening package %s\n", debugstr_w( localfile ));
|
||||
r = MSI_OpenDatabaseW( localfile, MSIDBOPEN_TRANSACT, &db );
|
||||
mode = (dwOptions & WINE_OPENPACKAGEFLAGS_READONLY) ? MSIDBOPEN_READONLY : MSIDBOPEN_TRANSACT;
|
||||
r = MSI_OpenDatabaseW( localfile, mode, &db );
|
||||
if (r != ERROR_SUCCESS)
|
||||
{
|
||||
free( product_version );
|
||||
|
|
|
@ -1259,6 +1259,22 @@ static void test_view_get_error(MSIHANDLE hinst)
|
|||
MsiCloseHandle(db);
|
||||
}
|
||||
|
||||
static void test_open_msi(MSIHANDLE hinst)
|
||||
{
|
||||
MSIHANDLE handle = 0;
|
||||
UINT result;
|
||||
char buffer[300];
|
||||
DWORD len = sizeof(buffer);
|
||||
|
||||
result = MsiGetPropertyA(hinst, "DATABASE", buffer, &len);
|
||||
ok(hinst, result == 0, "Failed: %x\n", result);
|
||||
|
||||
result = MsiOpenDatabaseA(buffer, (LPCSTR)MSIDBOPEN_READONLY, &handle);
|
||||
ok (hinst, result == 0, "Got %u\n", result);
|
||||
|
||||
MsiCloseHandle(handle);
|
||||
}
|
||||
|
||||
/* Main test. Anything that doesn't depend on a specific install configuration
|
||||
* or have undesired side effects should go here. */
|
||||
UINT WINAPI main_test(MSIHANDLE hinst)
|
||||
|
@ -1287,6 +1303,7 @@ UINT WINAPI main_test(MSIHANDLE hinst)
|
|||
test_costs(hinst);
|
||||
test_invalid_functions(hinst);
|
||||
test_view_get_error(hinst);
|
||||
test_open_msi(hinst);
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue