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
3f10a59f
Commit
3f10a59f
authored
Jan 29, 2020
by
Nikolay Sivov
Committed by
Alexandre Julliard
Jan 29, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ole32: Fix (item moniker + antimoniker) composing.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
c94b31ee
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
13 deletions
+7
-13
itemmoniker.c
dlls/ole32/itemmoniker.c
+6
-8
moniker.c
dlls/ole32/tests/moniker.c
+1
-5
No files found.
dlls/ole32/itemmoniker.c
View file @
3f10a59f
...
...
@@ -518,7 +518,7 @@ static HRESULT WINAPI ItemMonikerImpl_ComposeWith(IMoniker* iface,
IMoniker
**
ppmkComposite
)
{
HRESULT
res
=
S_OK
;
DWORD
mkSys
,
mkSys2
;
DWORD
mkSys
,
mkSys2
,
order
;
IEnumMoniker
*
penumMk
=
0
;
IMoniker
*
pmostLeftMk
=
0
;
IMoniker
*
tempMkComposite
=
0
;
...
...
@@ -530,16 +530,14 @@ static HRESULT WINAPI ItemMonikerImpl_ComposeWith(IMoniker* iface,
*
ppmkComposite
=
0
;
IMoniker_IsSystemMoniker
(
pmkRight
,
&
mkSys
);
/* If pmkRight is an anti-moniker, the returned moniker is NULL */
if
(
mkSys
==
MKSYS_ANTIMONIKER
)
return
res
;
if
(
is_anti_moniker
(
pmkRight
,
&
order
))
{
return
order
>
1
?
create_anti_moniker
(
order
-
1
,
ppmkComposite
)
:
S_OK
;
}
else
/* if pmkRight is a composite whose leftmost component is an anti-moniker, */
/* the returned moniker is the composite after the leftmost anti-moniker is removed. */
IMoniker_IsSystemMoniker
(
pmkRight
,
&
mkSys
);
if
(
mkSys
==
MKSYS_GENERICCOMPOSITE
){
res
=
IMoniker_Enum
(
pmkRight
,
TRUE
,
&
penumMk
);
...
...
dlls/ole32/tests/moniker.c
View file @
3f10a59f
...
...
@@ -2414,16 +2414,12 @@ todo_wine
anti
=
create_antimoniker
(
2
);
hr
=
IMoniker_ComposeWith
(
moniker
,
anti
,
TRUE
,
&
moniker2
);
ok
(
hr
==
S_OK
,
"Failed to compose, hr %#x.
\n
"
,
hr
);
todo_wine
ok
(
!!
moniker2
,
"Unexpected pointer.
\n
"
);
if
(
moniker2
)
{
TEST_MONIKER_TYPE
(
moniker2
,
MKSYS_ANTIMONIKER
);
hr
=
IMoniker_Hash
(
moniker2
,
&
hash
);
ok
(
hr
==
S_OK
,
"Failed to get hash, hr %#x.
\n
"
,
hr
);
ok
(
hash
==
0x80000001
,
"Unexpected hash.
\n
"
);
IMoniker_Release
(
moniker2
);
}
IMoniker_Release
(
anti
);
IMoniker_Release
(
moniker
);
...
...
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