Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
cc2cc146
Commit
cc2cc146
authored
Mar 25, 2021
by
Jacek Caban
Committed by
Alexandre Julliard
Mar 26, 2021
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msi: Use nameless unions.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Hans Leidekker
<
hans@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
f17483b9
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
25 additions
and
26 deletions
+25
-26
Makefile.in
dlls/msi/Makefile.in
+0
-1
suminfo.c
dlls/msi/suminfo.c
+25
-25
No files found.
dlls/msi/Makefile.in
View file @
cc2cc146
MODULE
=
msi.dll
IMPORTLIB
=
msi
IMPORTS
=
uuid urlmon wininet comctl32 shell32 shlwapi cabinet oleaut32 ole32 version user32 gdi32 advapi32 rpcrt4 sxs imagehlp mspatcha odbccp32 wintrust crypt32
EXTRADEFS
=
-DWINE_NO_NAMELESS_EXTENSION
EXTRAIDLFLAGS
=
--prefix-server
=
s_
...
...
dlls/msi/suminfo.c
View file @
cc2cc146
...
...
@@ -91,7 +91,7 @@ static HRESULT (WINAPI *pPropVariantChangeType)
static
void
free_prop
(
PROPVARIANT
*
prop
)
{
if
(
prop
->
vt
==
VT_LPSTR
)
msi_free
(
prop
->
u
.
pszVal
);
msi_free
(
prop
->
pszVal
);
prop
->
vt
=
VT_EMPTY
;
}
...
...
@@ -213,14 +213,14 @@ static void read_properties_from_data( PROPVARIANT *prop, LPBYTE data, DWORD sz
LPSTR
str
=
msi_alloc
(
propdata
->
u
.
str
.
len
);
memcpy
(
str
,
propdata
->
u
.
str
.
str
,
propdata
->
u
.
str
.
len
);
str
[
propdata
->
u
.
str
.
len
-
1
]
=
0
;
property
.
u
.
pszVal
=
str
;
property
.
pszVal
=
str
;
}
else
if
(
propdata
->
type
==
VT_FILETIME
)
property
.
u
.
filetime
=
propdata
->
u
.
ft
;
property
.
filetime
=
propdata
->
u
.
ft
;
else
if
(
propdata
->
type
==
VT_I2
)
property
.
u
.
iVal
=
propdata
->
u
.
i2
;
property
.
iVal
=
propdata
->
u
.
i2
;
else
if
(
propdata
->
type
==
VT_I4
)
property
.
u
.
lVal
=
propdata
->
u
.
i4
;
property
.
lVal
=
propdata
->
u
.
i4
;
/* check the type is the same as we expect */
if
(
type
!=
propdata
->
type
)
...
...
@@ -344,16 +344,16 @@ static UINT write_property_to_data( const PROPVARIANT *prop, LPBYTE data )
switch
(
prop
->
vt
)
{
case
VT_I2
:
sz
+=
write_dword
(
data
,
sz
,
prop
->
u
.
iVal
);
sz
+=
write_dword
(
data
,
sz
,
prop
->
iVal
);
break
;
case
VT_I4
:
sz
+=
write_dword
(
data
,
sz
,
prop
->
u
.
lVal
);
sz
+=
write_dword
(
data
,
sz
,
prop
->
lVal
);
break
;
case
VT_FILETIME
:
sz
+=
write_filetime
(
data
,
sz
,
&
prop
->
u
.
filetime
);
sz
+=
write_filetime
(
data
,
sz
,
&
prop
->
filetime
);
break
;
case
VT_LPSTR
:
sz
+=
write_string
(
data
,
sz
,
prop
->
u
.
pszVal
);
sz
+=
write_string
(
data
,
sz
,
prop
->
pszVal
);
break
;
}
return
sz
;
...
...
@@ -642,11 +642,11 @@ static UINT get_prop( MSISUMMARYINFO *si, UINT uiProperty, UINT *puiDataType, IN
{
case
VT_I2
:
if
(
piValue
)
*
piValue
=
prop
->
u
.
iVal
;
*
piValue
=
prop
->
iVal
;
break
;
case
VT_I4
:
if
(
piValue
)
*
piValue
=
prop
->
u
.
lVal
;
*
piValue
=
prop
->
lVal
;
break
;
case
VT_LPSTR
:
if
(
pcchValueBuf
)
...
...
@@ -655,14 +655,14 @@ static UINT get_prop( MSISUMMARYINFO *si, UINT uiProperty, UINT *puiDataType, IN
if
(
str
->
unicode
)
{
len
=
MultiByteToWideChar
(
CP_ACP
,
0
,
prop
->
u
.
pszVal
,
-
1
,
NULL
,
0
)
-
1
;
MultiByteToWideChar
(
CP_ACP
,
0
,
prop
->
u
.
pszVal
,
-
1
,
str
->
str
.
w
,
*
pcchValueBuf
);
len
=
MultiByteToWideChar
(
CP_ACP
,
0
,
prop
->
pszVal
,
-
1
,
NULL
,
0
)
-
1
;
MultiByteToWideChar
(
CP_ACP
,
0
,
prop
->
pszVal
,
-
1
,
str
->
str
.
w
,
*
pcchValueBuf
);
}
else
{
len
=
lstrlenA
(
prop
->
u
.
pszVal
);
len
=
lstrlenA
(
prop
->
pszVal
);
if
(
str
->
str
.
a
)
lstrcpynA
(
str
->
str
.
a
,
prop
->
u
.
pszVal
,
*
pcchValueBuf
);
lstrcpynA
(
str
->
str
.
a
,
prop
->
pszVal
,
*
pcchValueBuf
);
}
if
(
len
>=
*
pcchValueBuf
)
ret
=
ERROR_MORE_DATA
;
...
...
@@ -671,7 +671,7 @@ static UINT get_prop( MSISUMMARYINFO *si, UINT uiProperty, UINT *puiDataType, IN
break
;
case
VT_FILETIME
:
if
(
pftValue
)
*
pftValue
=
prop
->
u
.
filetime
;
*
pftValue
=
prop
->
filetime
;
break
;
case
VT_EMPTY
:
break
;
...
...
@@ -691,7 +691,7 @@ LPWSTR msi_suminfo_dup_string( MSISUMMARYINFO *si, UINT uiProperty )
prop
=
&
si
->
property
[
uiProperty
];
if
(
prop
->
vt
!=
VT_LPSTR
)
return
NULL
;
return
strdupAtoW
(
prop
->
u
.
pszVal
);
return
strdupAtoW
(
prop
->
pszVal
);
}
INT
msi_suminfo_get_int32
(
MSISUMMARYINFO
*
si
,
UINT
uiProperty
)
...
...
@@ -703,7 +703,7 @@ INT msi_suminfo_get_int32( MSISUMMARYINFO *si, UINT uiProperty )
prop
=
&
si
->
property
[
uiProperty
];
if
(
prop
->
vt
!=
VT_I4
)
return
-
1
;
return
prop
->
u
.
lVal
;
return
prop
->
lVal
;
}
LPWSTR
msi_get_suminfo_product
(
IStorage
*
stg
)
...
...
@@ -850,28 +850,28 @@ static UINT set_prop( MSISUMMARYINFO *si, UINT uiProperty, UINT type,
switch
(
type
)
{
case
VT_I4
:
prop
->
u
.
lVal
=
iValue
;
prop
->
lVal
=
iValue
;
break
;
case
VT_I2
:
prop
->
u
.
iVal
=
iValue
;
prop
->
iVal
=
iValue
;
break
;
case
VT_FILETIME
:
prop
->
u
.
filetime
=
*
pftValue
;
prop
->
filetime
=
*
pftValue
;
break
;
case
VT_LPSTR
:
if
(
str
->
unicode
)
{
len
=
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
.
w
,
-
1
,
NULL
,
0
,
NULL
,
NULL
);
prop
->
u
.
pszVal
=
msi_alloc
(
len
);
prop
->
pszVal
=
msi_alloc
(
len
);
WideCharToMultiByte
(
CP_ACP
,
0
,
str
->
str
.
w
,
-
1
,
prop
->
u
.
pszVal
,
len
,
NULL
,
NULL
);
prop
->
pszVal
,
len
,
NULL
,
NULL
);
}
else
{
len
=
lstrlenA
(
str
->
str
.
a
)
+
1
;
prop
->
u
.
pszVal
=
msi_alloc
(
len
);
lstrcpyA
(
prop
->
u
.
pszVal
,
str
->
str
.
a
);
prop
->
pszVal
=
msi_alloc
(
len
);
lstrcpyA
(
prop
->
pszVal
,
str
->
str
.
a
);
}
break
;
}
...
...
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