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
75c02048
Commit
75c02048
authored
Jul 15, 2014
by
Akihiro Sagawa
Committed by
Alexandre Julliard
Jul 15, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut32: Use the alternate interface key if not present on current view.
parent
8b0b6f90
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
12 additions
and
9 deletions
+12
-9
typelib.c
dlls/oleaut32/tests/typelib.c
+1
-5
tmarshal.c
dlls/oleaut32/tmarshal.c
+11
-4
No files found.
dlls/oleaut32/tests/typelib.c
View file @
75c02048
...
...
@@ -5493,11 +5493,7 @@ static void test_stub(void)
ok
(
hr
==
S_OK
,
"got: %x, side: %04x
\n
"
,
hr
,
side
);
hr
=
IPSFactoryBuffer_CreateStub
(
factory
,
&
interfaceguid
,
&
uk
,
&
base_stub
);
if
((
is_win64
&&
side
==
KEY_WOW64_32KEY
)
||
(
is_wow64
&&
side
==
KEY_WOW64_64KEY
))
todo_wine
ok
(
hr
==
S_OK
,
"got: %x, side: %04x
\n
"
,
hr
,
side
);
else
ok
(
hr
==
S_OK
,
"got: %x, side: %04x
\n
"
,
hr
,
side
);
ok
(
hr
==
S_OK
,
"got: %x, side: %04x
\n
"
,
hr
,
side
);
IPSFactoryBuffer_Release
(
factory
);
next:
...
...
dlls/oleaut32/tmarshal.c
View file @
75c02048
...
...
@@ -270,11 +270,13 @@ static HRESULT
_get_typeinfo_for_iid
(
REFIID
riid
,
ITypeInfo
**
ti
)
{
HRESULT
hres
;
HKEY
ikey
;
REGSAM
opposite
=
(
sizeof
(
void
*
)
==
8
)
?
KEY_WOW64_32KEY
:
KEY_WOW64_64KEY
;
BOOL
is_wow64
;
char
tlguid
[
200
],
typelibkey
[
300
],
interfacekey
[
300
],
ver
[
100
];
char
tlfn
[
260
];
OLECHAR
tlfnW
[
260
];
DWORD
tlguidlen
,
verlen
,
type
;
LONG
tlfnlen
;
LONG
tlfnlen
,
err
;
ITypeLib
*
tl
;
sprintf
(
interfacekey
,
"Interface
\\
{%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x}
\\
Typelib"
,
...
...
@@ -283,9 +285,14 @@ _get_typeinfo_for_iid(REFIID riid, ITypeInfo**ti) {
riid
->
Data4
[
4
],
riid
->
Data4
[
5
],
riid
->
Data4
[
6
],
riid
->
Data4
[
7
]
);
if
(
RegOpenKeyA
(
HKEY_CLASSES_ROOT
,
interfacekey
,
&
ikey
))
{
ERR
(
"No %s key found.
\n
"
,
interfacekey
);
return
E_FAIL
;
err
=
RegOpenKeyExA
(
HKEY_CLASSES_ROOT
,
interfacekey
,
0
,
KEY_READ
,
&
ikey
);
if
(
err
&&
(
opposite
==
KEY_WOW64_32KEY
||
(
IsWow64Process
(
GetCurrentProcess
(),
&
is_wow64
)
&&
is_wow64
)))
{
err
=
RegOpenKeyExA
(
HKEY_CLASSES_ROOT
,
interfacekey
,
0
,
KEY_READ
|
opposite
,
&
ikey
);
}
if
(
err
)
{
ERR
(
"No %s key found.
\n
"
,
interfacekey
);
return
E_FAIL
;
}
tlguidlen
=
sizeof
(
tlguid
);
if
(
RegQueryValueExA
(
ikey
,
NULL
,
NULL
,
&
type
,(
LPBYTE
)
tlguid
,
&
tlguidlen
))
{
...
...
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