Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
dfc9351b
Commit
dfc9351b
authored
Oct 01, 2010
by
Hans Leidekker
Committed by
Alexandre Julliard
Oct 01, 2010
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Set more 64-bit properties.
parent
ddbf3c75
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
226 additions
and
14 deletions
+226
-14
package.c
dlls/msi/package.c
+39
-11
install.c
dlls/msi/tests/install.c
+2
-1
package.c
dlls/msi/tests/package.c
+185
-2
No files found.
dlls/msi/package.c
View file @
dfc9351b
...
@@ -659,6 +659,9 @@ static VOID set_installer_properties(MSIPACKAGE *package)
...
@@ -659,6 +659,9 @@ static VOID set_installer_properties(MSIPACKAGE *package)
static
const
WCHAR
szMsiAMD64
[]
=
{
'M'
,
's'
,
'i'
,
'A'
,
'M'
,
'D'
,
'6'
,
'4'
,
0
};
static
const
WCHAR
szMsiAMD64
[]
=
{
'M'
,
's'
,
'i'
,
'A'
,
'M'
,
'D'
,
'6'
,
'4'
,
0
};
static
const
WCHAR
szMsix64
[]
=
{
'M'
,
's'
,
'i'
,
'x'
,
'6'
,
'4'
,
0
};
static
const
WCHAR
szMsix64
[]
=
{
'M'
,
's'
,
'i'
,
'x'
,
'6'
,
'4'
,
0
};
static
const
WCHAR
szSystem64Folder
[]
=
{
'S'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
'6'
,
'4'
,
'F'
,
'o'
,
'l'
,
'd'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
szSystem64Folder
[]
=
{
'S'
,
'y'
,
's'
,
't'
,
'e'
,
'm'
,
'6'
,
'4'
,
'F'
,
'o'
,
'l'
,
'd'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
szCommonFiles64Folder
[]
=
{
'C'
,
'o'
,
'm'
,
'm'
,
'o'
,
'n'
,
'F'
,
'i'
,
'l'
,
'e'
,
's'
,
'6'
,
'4'
,
'F'
,
'o'
,
'l'
,
'd'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
szProgramFiles64Folder
[]
=
{
'P'
,
'r'
,
'o'
,
'g'
,
'r'
,
'a'
,
'm'
,
'F'
,
'i'
,
'l'
,
'e'
,
's'
,
'6'
,
'4'
,
'F'
,
'o'
,
'l'
,
'd'
,
'e'
,
'r'
,
0
};
static
const
WCHAR
szVersionNT64
[]
=
{
'V'
,
'e'
,
'r'
,
's'
,
'i'
,
'o'
,
'n'
,
'N'
,
'T'
,
'6'
,
'4'
,
0
};
static
const
WCHAR
szUserInfo
[]
=
{
static
const
WCHAR
szUserInfo
[]
=
{
'S'
,
'O'
,
'F'
,
'T'
,
'W'
,
'A'
,
'R'
,
'E'
,
'\\'
,
'S'
,
'O'
,
'F'
,
'T'
,
'W'
,
'A'
,
'R'
,
'E'
,
'\\'
,
'M'
,
'i'
,
'c'
,
'r'
,
'o'
,
's'
,
'o'
,
'f'
,
't'
,
'\\'
,
'M'
,
'i'
,
'c'
,
'r'
,
'o'
,
's'
,
'o'
,
'f'
,
't'
,
'\\'
,
...
@@ -698,14 +701,6 @@ static VOID set_installer_properties(MSIPACKAGE *package)
...
@@ -698,14 +701,6 @@ static VOID set_installer_properties(MSIPACKAGE *package)
* RedirectedDllSupport
* RedirectedDllSupport
*/
*/
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES_COMMON
,
NULL
,
0
,
pth
);
strcatW
(
pth
,
szBackSlash
);
msi_set_property
(
package
->
db
,
szCommonFilesFolder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES
,
NULL
,
0
,
pth
);
strcatW
(
pth
,
szBackSlash
);
msi_set_property
(
package
->
db
,
szProgramFilesFolder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_COMMON_APPDATA
,
NULL
,
0
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_COMMON_APPDATA
,
NULL
,
0
,
pth
);
strcatW
(
pth
,
szBackSlash
);
strcatW
(
pth
,
szBackSlash
);
msi_set_property
(
package
->
db
,
szCommonAppDataFolder
,
pth
);
msi_set_property
(
package
->
db
,
szCommonAppDataFolder
,
pth
);
...
@@ -828,20 +823,53 @@ static VOID set_installer_properties(MSIPACKAGE *package)
...
@@ -828,20 +823,53 @@ static VOID set_installer_properties(MSIPACKAGE *package)
sprintfW
(
bufstr
,
szFormat
,
MSI_MAJORVERSION
*
100
);
sprintfW
(
bufstr
,
szFormat
,
MSI_MAJORVERSION
*
100
);
msi_set_property
(
package
->
db
,
szVersionDatabase
,
bufstr
);
msi_set_property
(
package
->
db
,
szVersionDatabase
,
bufstr
);
GetSystemInfo
(
&
sys_info
);
GetNativeSystemInfo
(
&
sys_info
);
sprintfW
(
bufstr
,
szIntFormat
,
sys_info
.
wProcessorLevel
);
if
(
sys_info
.
u
.
s
.
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_INTEL
)
if
(
sys_info
.
u
.
s
.
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_INTEL
)
{
{
sprintfW
(
bufstr
,
szIntFormat
,
sys_info
.
wProcessorLevel
);
msi_set_property
(
package
->
db
,
szIntel
,
bufstr
);
msi_set_property
(
package
->
db
,
szIntel
,
bufstr
);
GetSystemDirectoryW
(
pth
,
MAX_PATH
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szSystemFolder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES
,
NULL
,
0
,
pth
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szProgramFilesFolder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES_COMMON
,
NULL
,
0
,
pth
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szCommonFilesFolder
,
pth
);
}
}
else
if
(
sys_info
.
u
.
s
.
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_AMD64
)
else
if
(
sys_info
.
u
.
s
.
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_AMD64
)
{
{
sprintfW
(
bufstr
,
szIntFormat
,
sys_info
.
wProcessorLevel
);
msi_set_property
(
package
->
db
,
szMsiAMD64
,
bufstr
);
msi_set_property
(
package
->
db
,
szMsiAMD64
,
bufstr
);
msi_set_property
(
package
->
db
,
szMsix64
,
bufstr
);
msi_set_property
(
package
->
db
,
szMsix64
,
bufstr
);
msi_set_property
(
package
->
db
,
szVersionNT64
,
verstr
);
GetSystemDirectoryW
(
pth
,
MAX_PATH
);
GetSystemDirectoryW
(
pth
,
MAX_PATH
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szSystem64Folder
,
pth
);
msi_set_property
(
package
->
db
,
szSystem64Folder
,
pth
);
GetSystemWow64DirectoryW
(
pth
,
MAX_PATH
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szSystemFolder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES
,
NULL
,
0
,
pth
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szProgramFiles64Folder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILESX86
,
NULL
,
0
,
pth
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szProgramFilesFolder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES_COMMON
,
NULL
,
0
,
pth
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szCommonFiles64Folder
,
pth
);
SHGetFolderPathW
(
NULL
,
CSIDL_PROGRAM_FILES_COMMONX86
,
NULL
,
0
,
pth
);
PathAddBackslashW
(
pth
);
msi_set_property
(
package
->
db
,
szCommonFilesFolder
,
pth
);
}
}
/* Screen properties. */
/* Screen properties. */
...
...
dlls/msi/tests/install.c
View file @
dfc9351b
...
@@ -3448,7 +3448,8 @@ static BOOL get_system_dirs(void)
...
@@ -3448,7 +3448,8 @@ static BOOL get_system_dirs(void)
}
}
size
=
MAX_PATH
;
size
=
MAX_PATH
;
if
(
RegQueryValueExA
(
hkey
,
"CommonFilesDir"
,
0
,
&
type
,
(
LPBYTE
)
COMMON_FILES_DIR
,
&
size
))
{
if
(
RegQueryValueExA
(
hkey
,
"CommonFilesDir (x86)"
,
0
,
&
type
,
(
LPBYTE
)
COMMON_FILES_DIR
,
&
size
)
&&
RegQueryValueExA
(
hkey
,
"CommonFilesDir"
,
0
,
&
type
,
(
LPBYTE
)
COMMON_FILES_DIR
,
&
size
))
{
RegCloseKey
(
hkey
);
RegCloseKey
(
hkey
);
return
FALSE
;
return
FALSE
;
}
}
...
...
dlls/msi/tests/package.c
View file @
dfc9351b
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include <msi.h>
#include <msi.h>
#include <msiquery.h>
#include <msiquery.h>
#include <srrestoreptapi.h>
#include <srrestoreptapi.h>
#include <shlobj.h>
#include "wine/test.h"
#include "wine/test.h"
...
@@ -34,6 +35,7 @@ static const char msifile[] = "winetest-package.msi";
...
@@ -34,6 +35,7 @@ static const char msifile[] = "winetest-package.msi";
static
char
CURR_DIR
[
MAX_PATH
];
static
char
CURR_DIR
[
MAX_PATH
];
static
UINT
(
WINAPI
*
pMsiApplyMultiplePatchesA
)(
LPCSTR
,
LPCSTR
,
LPCSTR
);
static
UINT
(
WINAPI
*
pMsiApplyMultiplePatchesA
)(
LPCSTR
,
LPCSTR
,
LPCSTR
);
static
HRESULT
(
WINAPI
*
pSHGetFolderPathA
)(
HWND
,
int
,
HANDLE
,
DWORD
,
LPSTR
);
static
BOOL
(
WINAPI
*
pConvertSidToStringSidA
)(
PSID
,
LPSTR
*
);
static
BOOL
(
WINAPI
*
pConvertSidToStringSidA
)(
PSID
,
LPSTR
*
);
static
BOOL
(
WINAPI
*
pGetTokenInformation
)(
HANDLE
,
TOKEN_INFORMATION_CLASS
,
LPVOID
,
DWORD
,
PDWORD
);
static
BOOL
(
WINAPI
*
pGetTokenInformation
)(
HANDLE
,
TOKEN_INFORMATION_CLASS
,
LPVOID
,
DWORD
,
PDWORD
);
...
@@ -42,6 +44,7 @@ static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD);
...
@@ -42,6 +44,7 @@ static LONG (WINAPI *pRegDeleteKeyExA)(HKEY, LPCSTR, REGSAM, DWORD);
static
LONG
(
WINAPI
*
pRegDeleteKeyExW
)(
HKEY
,
LPCWSTR
,
REGSAM
,
DWORD
);
static
LONG
(
WINAPI
*
pRegDeleteKeyExW
)(
HKEY
,
LPCWSTR
,
REGSAM
,
DWORD
);
static
BOOL
(
WINAPI
*
pIsWow64Process
)(
HANDLE
,
PBOOL
);
static
BOOL
(
WINAPI
*
pIsWow64Process
)(
HANDLE
,
PBOOL
);
static
void
(
WINAPI
*
pGetSystemInfo
)(
LPSYSTEM_INFO
);
static
void
(
WINAPI
*
pGetSystemInfo
)(
LPSYSTEM_INFO
);
static
UINT
(
WINAPI
*
pGetSystemWow64DirectoryA
)(
LPSTR
,
UINT
);
static
BOOL
(
WINAPI
*
pSRRemoveRestorePoint
)(
DWORD
);
static
BOOL
(
WINAPI
*
pSRRemoveRestorePoint
)(
DWORD
);
static
BOOL
(
WINAPI
*
pSRSetRestorePointA
)(
RESTOREPOINTINFOA
*
,
STATEMGRSTATUS
*
);
static
BOOL
(
WINAPI
*
pSRSetRestorePointA
)(
RESTOREPOINTINFOA
*
,
STATEMGRSTATUS
*
);
...
@@ -51,12 +54,14 @@ static void init_functionpointers(void)
...
@@ -51,12 +54,14 @@ static void init_functionpointers(void)
HMODULE
hmsi
=
GetModuleHandleA
(
"msi.dll"
);
HMODULE
hmsi
=
GetModuleHandleA
(
"msi.dll"
);
HMODULE
hadvapi32
=
GetModuleHandleA
(
"advapi32.dll"
);
HMODULE
hadvapi32
=
GetModuleHandleA
(
"advapi32.dll"
);
HMODULE
hkernel32
=
GetModuleHandleA
(
"kernel32.dll"
);
HMODULE
hkernel32
=
GetModuleHandleA
(
"kernel32.dll"
);
HMODULE
hshell32
=
GetModuleHandleA
(
"shell32.dll"
);
HMODULE
hsrclient
;
HMODULE
hsrclient
;
#define GET_PROC(mod, func) \
#define GET_PROC(mod, func) \
p ## func = (void*)GetProcAddress(mod, #func);
p ## func = (void*)GetProcAddress(mod, #func);
GET_PROC
(
hmsi
,
MsiApplyMultiplePatchesA
);
GET_PROC
(
hmsi
,
MsiApplyMultiplePatchesA
);
GET_PROC
(
hshell32
,
SHGetFolderPathA
);
GET_PROC
(
hadvapi32
,
ConvertSidToStringSidA
);
GET_PROC
(
hadvapi32
,
ConvertSidToStringSidA
);
GET_PROC
(
hadvapi32
,
GetTokenInformation
);
GET_PROC
(
hadvapi32
,
GetTokenInformation
);
...
@@ -65,6 +70,7 @@ static void init_functionpointers(void)
...
@@ -65,6 +70,7 @@ static void init_functionpointers(void)
GET_PROC
(
hadvapi32
,
RegDeleteKeyExW
)
GET_PROC
(
hadvapi32
,
RegDeleteKeyExW
)
GET_PROC
(
hkernel32
,
IsWow64Process
)
GET_PROC
(
hkernel32
,
IsWow64Process
)
GET_PROC
(
hkernel32
,
GetSystemInfo
)
GET_PROC
(
hkernel32
,
GetSystemInfo
)
GET_PROC
(
hkernel32
,
GetSystemWow64DirectoryA
)
hsrclient
=
LoadLibraryA
(
"srclient.dll"
);
hsrclient
=
LoadLibraryA
(
"srclient.dll"
);
GET_PROC
(
hsrclient
,
SRRemoveRestorePoint
);
GET_PROC
(
hsrclient
,
SRRemoveRestorePoint
);
...
@@ -9575,7 +9581,7 @@ static void test_installprops(void)
...
@@ -9575,7 +9581,7 @@ static void test_installprops(void)
int
res
;
int
res
;
UINT
r
;
UINT
r
;
REGSAM
access
=
KEY_ALL_ACCESS
;
REGSAM
access
=
KEY_ALL_ACCESS
;
BOOL
wow64
;
BOOL
wow64
=
FALSE
;
SYSTEM_INFO
si
;
SYSTEM_INFO
si
;
if
(
pIsWow64Process
&&
pIsWow64Process
(
GetCurrentProcess
(),
&
wow64
)
&&
wow64
)
if
(
pIsWow64Process
&&
pIsWow64Process
(
GetCurrentProcess
(),
&
wow64
)
&&
wow64
)
...
@@ -9687,7 +9693,7 @@ static void test_installprops(void)
...
@@ -9687,7 +9693,7 @@ static void test_installprops(void)
r
=
MsiGetProperty
(
hpkg
,
"ScreenY"
,
buf
,
&
size
);
r
=
MsiGetProperty
(
hpkg
,
"ScreenY"
,
buf
,
&
size
);
ok
(
atol
(
buf
)
==
res
,
"Expected %d, got %ld
\n
"
,
res
,
atol
(
buf
));
ok
(
atol
(
buf
)
==
res
,
"Expected %d, got %ld
\n
"
,
res
,
atol
(
buf
));
if
(
pGetSystemInfo
)
if
(
pGetSystemInfo
&&
pSHGetFolderPathA
)
{
{
pGetSystemInfo
(
&
si
);
pGetSystemInfo
(
&
si
);
if
(
S
(
U
(
si
)).
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_AMD64
)
if
(
S
(
U
(
si
)).
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_AMD64
)
...
@@ -9708,8 +9714,185 @@ static void test_installprops(void)
...
@@ -9708,8 +9714,185 @@ static void test_installprops(void)
size
=
MAX_PATH
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"System64Folder"
,
buf
,
&
size
);
r
=
MsiGetProperty
(
hpkg
,
"System64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
GetSystemDirectoryA
(
path
,
MAX_PATH
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"SystemFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pGetSystemWow64DirectoryA
(
path
,
MAX_PATH
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"ProgramFiles64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILES
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"ProgramFilesFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILESX86
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"CommonFiles64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILES_COMMON
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"CommonFilesFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILES_COMMONX86
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"VersionNT64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
buf
[
0
],
"property not set
\n
"
);
ok
(
buf
[
0
],
"property not set
\n
"
);
}
}
else
if
(
S
(
U
(
si
)).
wProcessorArchitecture
==
PROCESSOR_ARCHITECTURE_INTEL
)
{
if
(
!
wow64
)
{
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"MsiAMD64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"Msix64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"System64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"SystemFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
GetSystemDirectoryA
(
path
,
MAX_PATH
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"ProgramFiles64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"ProgramFilesFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILES
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"CommonFiles64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"CommonFilesFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILES_COMMON
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"VersionNT64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
}
else
{
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"MsiAMD64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
buf
[
0
],
"property not set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"Msix64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
buf
[
0
],
"property not set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"System64Folder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
GetSystemDirectoryA
(
path
,
MAX_PATH
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"SystemFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pGetSystemWow64DirectoryA
(
path
,
MAX_PATH
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"ProgramFilesFolder64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"ProgramFilesFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILESX86
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"CommonFilesFolder64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
!
buf
[
0
],
"property set
\n
"
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"CommonFilesFolder"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
pSHGetFolderPathA
(
NULL
,
CSIDL_PROGRAM_FILES_COMMONX86
,
NULL
,
0
,
path
);
if
(
size
)
buf
[
size
-
1
]
=
0
;
ok
(
!
lstrcmpiA
(
path
,
buf
),
"expected
\"
%s
\"
, got
\"
%s
\"\n
"
,
path
,
buf
);
buf
[
0
]
=
0
;
size
=
MAX_PATH
;
r
=
MsiGetProperty
(
hpkg
,
"VersionNT64"
,
buf
,
&
size
);
ok
(
r
==
ERROR_SUCCESS
,
"failed to get property: %d
\n
"
,
r
);
ok
(
buf
[
0
],
"property not set
\n
"
);
}
}
}
}
CloseHandle
(
hkey1
);
CloseHandle
(
hkey1
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment