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
4b19449b
Commit
4b19449b
authored
Mar 21, 2006
by
Robert Shearman
Committed by
Alexandre Julliard
Mar 21, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
oleaut: ITypeInfo::GetIDsOfNames should search inherited interfaces
regardless of what type they are. Add a test for this and dump type infos created with CreateDispTypeInfo.
parent
130a0e4f
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
18 additions
and
5 deletions
+18
-5
typelib.c
dlls/oleaut32/tests/typelib.c
+11
-1
typelib.c
dlls/oleaut32/typelib.c
+7
-4
No files found.
dlls/oleaut32/tests/typelib.c
View file @
4b19449b
...
...
@@ -227,13 +227,15 @@ static void test_CreateDispTypeInfo(void)
TYPEATTR
*
pTypeAttr
;
HREFTYPE
href
;
FUNCDESC
*
pFuncDesc
;
MEMBERID
memid
;
static
const
WCHAR
func1
[]
=
{
'f'
,
'u'
,
'n'
,
'c'
,
'1'
,
0
};
static
const
WCHAR
func2
[]
=
{
'f'
,
'u'
,
'n'
,
'c'
,
'2'
,
0
};
static
const
WCHAR
func3
[]
=
{
'f'
,
'u'
,
'n'
,
'c'
,
'3'
,
0
};
static
const
WCHAR
parm1
[]
=
{
'p'
,
'a'
,
'r'
,
'm'
,
'1'
,
0
};
static
const
WCHAR
parm2
[]
=
{
'p'
,
'a'
,
'r'
,
'm'
,
'2'
,
0
};
OLECHAR
*
name
=
(
OLECHAR
*
)
func1
;
ifdata
.
pmethdata
=
methdata
;
ifdata
.
cMembers
=
sizeof
(
methdata
)
/
sizeof
(
methdata
[
0
]);
...
...
@@ -293,6 +295,9 @@ static void test_CreateDispTypeInfo(void)
hr
=
ITypeInfo_GetRefTypeOfImplType
(
pTypeInfo
,
0
,
&
href
);
ok
(
hr
==
S_OK
,
"hr %08lx
\n
"
,
hr
);
todo_wine
{
ok
(
href
==
0
,
"href = 0x%lx
\n
"
,
href
);
}
hr
=
ITypeInfo_GetRefTypeInfo
(
pTypeInfo
,
href
,
&
pTI2
);
ok
(
hr
==
S_OK
,
"hr %08lx
\n
"
,
hr
);
hr
=
ITypeInfo_GetTypeAttr
(
pTI2
,
&
pTypeAttr
);
...
...
@@ -351,6 +356,11 @@ static void test_CreateDispTypeInfo(void)
ok
(
pFuncDesc
->
elemdescFunc
.
tdesc
.
vt
==
VT_I4
,
"ret vt %x
\n
"
,
pFuncDesc
->
elemdescFunc
.
tdesc
.
vt
);
ITypeInfo_ReleaseFuncDesc
(
pTI2
,
pFuncDesc
);
/* test GetIDsOfNames on a coclass to see if it searches its interfaces */
hr
=
ITypeInfo_GetIDsOfNames
(
pTypeInfo
,
&
name
,
1
,
&
memid
);
ok
(
hr
==
S_OK
,
"hr 0x%08lx
\n
"
,
hr
);
ok
(
memid
==
0x123
,
"memid 0x%08lx
\n
"
,
memid
);
ITypeInfo_Release
(
pTI2
);
ITypeInfo_Release
(
pTypeInfo
);
...
...
dlls/oleaut32/typelib.c
View file @
4b19449b
...
...
@@ -4784,9 +4784,8 @@ static HRESULT WINAPI ITypeInfo_fnGetIDsOfNames( ITypeInfo2 *iface,
return
ret
;
}
}
/* not found, see if this is and interface with an inheritance */
if
(
This
->
TypeAttr
.
cImplTypes
&&
(
This
->
TypeAttr
.
typekind
==
TKIND_INTERFACE
||
This
->
TypeAttr
.
typekind
==
TKIND_DISPATCH
))
{
/* not found, see if it can be found in an inherited interface */
if
(
This
->
TypeAttr
.
cImplTypes
)
{
/* recursive search */
ITypeInfo
*
pTInfo
;
ret
=
ITypeInfo_GetRefTypeInfo
(
iface
,
...
...
@@ -6338,7 +6337,7 @@ HRESULT WINAPI CreateDispTypeInfo(
int
param
,
func
;
TLBFuncDesc
**
ppFuncDesc
;
TRACE
_
(
typelib
)
(
"
\n
"
);
TRACE
(
"
\n
"
);
pTypeLibImpl
=
TypeLibImpl_Constructor
();
if
(
!
pTypeLibImpl
)
return
E_FAIL
;
...
...
@@ -6394,6 +6393,8 @@ HRESULT WINAPI CreateDispTypeInfo(
ppFuncDesc
=
&
(
*
ppFuncDesc
)
->
next
;
}
dump_TypeInfo
(
pTIIface
);
pTypeLibImpl
->
pTypeInfo
=
pTIIface
;
pTypeLibImpl
->
TypeInfoCount
++
;
...
...
@@ -6423,6 +6424,8 @@ HRESULT WINAPI CreateDispTypeInfo(
pTIClass
->
reflist
->
reference
=
1
;
pTIClass
->
reflist
->
pImpTLInfo
=
TLB_REF_INTERNAL
;
dump_TypeInfo
(
pTIClass
);
pTIIface
->
next
=
pTIClass
;
pTypeLibImpl
->
TypeInfoCount
++
;
...
...
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