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
ca2e0c5e
Commit
ca2e0c5e
authored
Sep 14, 2016
by
Jacek Caban
Committed by
Alexandre Julliard
Sep 14, 2016
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mshtml: Use IUnknownVtbl in wrapper_vtbl.
Signed-off-by:
Jacek Caban
<
jacek@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
80a222a8
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
108 additions
and
102 deletions
+108
-102
ifacewrap.c
dlls/mshtml/ifacewrap.c
+108
-102
No files found.
dlls/mshtml/ifacewrap.c
View file @
ca2e0c5e
...
...
@@ -215,107 +215,113 @@ DEFINE_WRAPPER_FUNC(98, 392, 784)
DEFINE_WRAPPER_FUNC
(
99
,
396
,
792
)
/* The size was found by testing when calls start crashing. It looks like MS wraps up to 100 functions. */
static
const
void
*
wrapper_vtbl
[]
=
{
wrapper_QueryInterface
,
wrapper_AddRef
,
wrapper_Release
,
wrapper_func_3
,
wrapper_func_4
,
wrapper_func_5
,
wrapper_func_6
,
wrapper_func_7
,
wrapper_func_8
,
wrapper_func_9
,
wrapper_func_10
,
wrapper_func_11
,
wrapper_func_12
,
wrapper_func_13
,
wrapper_func_14
,
wrapper_func_15
,
wrapper_func_16
,
wrapper_func_17
,
wrapper_func_18
,
wrapper_func_19
,
wrapper_func_20
,
wrapper_func_21
,
wrapper_func_22
,
wrapper_func_23
,
wrapper_func_24
,
wrapper_func_25
,
wrapper_func_26
,
wrapper_func_27
,
wrapper_func_28
,
wrapper_func_29
,
wrapper_func_30
,
wrapper_func_31
,
wrapper_func_32
,
wrapper_func_33
,
wrapper_func_34
,
wrapper_func_35
,
wrapper_func_36
,
wrapper_func_37
,
wrapper_func_38
,
wrapper_func_39
,
wrapper_func_40
,
wrapper_func_41
,
wrapper_func_42
,
wrapper_func_43
,
wrapper_func_44
,
wrapper_func_45
,
wrapper_func_46
,
wrapper_func_47
,
wrapper_func_48
,
wrapper_func_49
,
wrapper_func_50
,
wrapper_func_51
,
wrapper_func_52
,
wrapper_func_53
,
wrapper_func_54
,
wrapper_func_55
,
wrapper_func_56
,
wrapper_func_57
,
wrapper_func_58
,
wrapper_func_59
,
wrapper_func_60
,
wrapper_func_61
,
wrapper_func_62
,
wrapper_func_63
,
wrapper_func_64
,
wrapper_func_65
,
wrapper_func_66
,
wrapper_func_67
,
wrapper_func_68
,
wrapper_func_69
,
wrapper_func_70
,
wrapper_func_71
,
wrapper_func_72
,
wrapper_func_73
,
wrapper_func_74
,
wrapper_func_75
,
wrapper_func_76
,
wrapper_func_77
,
wrapper_func_78
,
wrapper_func_79
,
wrapper_func_80
,
wrapper_func_81
,
wrapper_func_82
,
wrapper_func_83
,
wrapper_func_84
,
wrapper_func_85
,
wrapper_func_86
,
wrapper_func_87
,
wrapper_func_88
,
wrapper_func_89
,
wrapper_func_90
,
wrapper_func_91
,
wrapper_func_92
,
wrapper_func_93
,
wrapper_func_94
,
wrapper_func_95
,
wrapper_func_96
,
wrapper_func_97
,
wrapper_func_98
,
wrapper_func_99
static
const
struct
{
IUnknownVtbl
unk_vtbl
;
const
void
*
wrappers
[
97
];
}
wrapper_vtbl
=
{
{
wrapper_QueryInterface
,
wrapper_AddRef
,
wrapper_Release
},
{
wrapper_func_3
,
wrapper_func_4
,
wrapper_func_5
,
wrapper_func_6
,
wrapper_func_7
,
wrapper_func_8
,
wrapper_func_9
,
wrapper_func_10
,
wrapper_func_11
,
wrapper_func_12
,
wrapper_func_13
,
wrapper_func_14
,
wrapper_func_15
,
wrapper_func_16
,
wrapper_func_17
,
wrapper_func_18
,
wrapper_func_19
,
wrapper_func_20
,
wrapper_func_21
,
wrapper_func_22
,
wrapper_func_23
,
wrapper_func_24
,
wrapper_func_25
,
wrapper_func_26
,
wrapper_func_27
,
wrapper_func_28
,
wrapper_func_29
,
wrapper_func_30
,
wrapper_func_31
,
wrapper_func_32
,
wrapper_func_33
,
wrapper_func_34
,
wrapper_func_35
,
wrapper_func_36
,
wrapper_func_37
,
wrapper_func_38
,
wrapper_func_39
,
wrapper_func_40
,
wrapper_func_41
,
wrapper_func_42
,
wrapper_func_43
,
wrapper_func_44
,
wrapper_func_45
,
wrapper_func_46
,
wrapper_func_47
,
wrapper_func_48
,
wrapper_func_49
,
wrapper_func_50
,
wrapper_func_51
,
wrapper_func_52
,
wrapper_func_53
,
wrapper_func_54
,
wrapper_func_55
,
wrapper_func_56
,
wrapper_func_57
,
wrapper_func_58
,
wrapper_func_59
,
wrapper_func_60
,
wrapper_func_61
,
wrapper_func_62
,
wrapper_func_63
,
wrapper_func_64
,
wrapper_func_65
,
wrapper_func_66
,
wrapper_func_67
,
wrapper_func_68
,
wrapper_func_69
,
wrapper_func_70
,
wrapper_func_71
,
wrapper_func_72
,
wrapper_func_73
,
wrapper_func_74
,
wrapper_func_75
,
wrapper_func_76
,
wrapper_func_77
,
wrapper_func_78
,
wrapper_func_79
,
wrapper_func_80
,
wrapper_func_81
,
wrapper_func_82
,
wrapper_func_83
,
wrapper_func_84
,
wrapper_func_85
,
wrapper_func_86
,
wrapper_func_87
,
wrapper_func_88
,
wrapper_func_89
,
wrapper_func_90
,
wrapper_func_91
,
wrapper_func_92
,
wrapper_func_93
,
wrapper_func_94
,
wrapper_func_95
,
wrapper_func_96
,
wrapper_func_97
,
wrapper_func_98
,
wrapper_func_99
}
};
HRESULT
wrap_iface
(
IUnknown
*
iface
,
IUnknown
*
ref_unk
,
IUnknown
**
ret
)
...
...
@@ -326,7 +332,7 @@ HRESULT wrap_iface(IUnknown *iface, IUnknown *ref_unk, IUnknown **ret)
if
(
!
wrapper
)
return
E_OUTOFMEMORY
;
wrapper
->
IUnknown_iface
.
lpVtbl
=
(
const
IUnknownVtbl
*
)
wrapper
_vtbl
;
wrapper
->
IUnknown_iface
.
lpVtbl
=
&
wrapper_vtbl
.
unk
_vtbl
;
wrapper
->
ref
=
1
;
IUnknown_AddRef
(
iface
);
...
...
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