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
dd9295b4
Commit
dd9295b4
authored
Jun 12, 2020
by
Nikolay Sivov
Committed by
Alexandre Julliard
Jun 12, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Create class section for proxy-stub interface entries.
Signed-off-by:
Nikolay Sivov
<
nsivov@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
ae9a59ae
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
38 additions
and
2 deletions
+38
-2
actctx.c
dlls/ntdll/actctx.c
+38
-2
No files found.
dlls/ntdll/actctx.c
View file @
dd9295b4
...
...
@@ -1778,12 +1778,40 @@ static BOOL parse_nummethods(const xmlstr_t *str, struct entity *entity)
return
TRUE
;
}
static
void
parse_add_interface_class
(
xmlbuf_t
*
xmlbuf
,
struct
entity_array
*
entities
,
struct
actctx_loader
*
acl
,
WCHAR
*
clsid
)
{
struct
entity
*
entity
;
WCHAR
*
str
;
if
(
!
clsid
)
return
;
if
(
!
(
str
=
strdupW
(
clsid
)))
{
set_error
(
xmlbuf
);
return
;
}
if
(
!
(
entity
=
add_entity
(
entities
,
ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION
)))
{
RtlFreeHeap
(
GetProcessHeap
(),
0
,
str
);
set_error
(
xmlbuf
);
return
;
}
entity
->
u
.
comclass
.
clsid
=
str
;
entity
->
u
.
comclass
.
model
=
ThreadingModel_Both
;
acl
->
actctx
->
sections
|=
SERVERREDIRECT_SECTION
;
}
static
void
parse_cominterface_proxy_stub_elem
(
xmlbuf_t
*
xmlbuf
,
struct
dll_redirect
*
dll
,
struct
actctx_loader
*
acl
,
const
struct
xml_elem
*
parent
)
{
WCHAR
*
psclsid
=
NULL
;
struct
entity
*
entity
;
struct
xml_attr
attr
;
BOOL
end
=
FALSE
;
struct
entity
*
entity
;
if
(
!
(
entity
=
add_entity
(
&
dll
->
entities
,
ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION
)))
{
...
...
@@ -1815,8 +1843,12 @@ static void parse_cominterface_proxy_stub_elem( xmlbuf_t *xmlbuf, struct dll_red
{
if
(
!
(
entity
->
u
.
ifaceps
.
tlib
=
xmlstrdupW
(
&
attr
.
value
)))
set_error
(
xmlbuf
);
}
else
if
(
xml_attr_cmp
(
&
attr
,
proxyStubClsid32W
))
{
if
(
!
(
psclsid
=
xmlstrdupW
(
&
attr
.
value
)))
set_error
(
xmlbuf
);
}
/* not used */
else
if
(
xml_attr_cmp
(
&
attr
,
proxyStubClsid32W
)
||
xml_attr_cmp
(
&
attr
,
threadingmodelW
))
else
if
(
xml_attr_cmp
(
&
attr
,
threadingmodelW
))
{
}
else
if
(
!
is_xmlns_attr
(
&
attr
))
...
...
@@ -1827,6 +1859,10 @@ static void parse_cominterface_proxy_stub_elem( xmlbuf_t *xmlbuf, struct dll_red
acl
->
actctx
->
sections
|=
IFACEREDIRECT_SECTION
;
if
(
!
end
)
parse_expect_end_elem
(
xmlbuf
,
parent
);
parse_add_interface_class
(
xmlbuf
,
&
dll
->
entities
,
acl
,
psclsid
?
psclsid
:
entity
->
u
.
ifaceps
.
iid
);
RtlFreeHeap
(
GetProcessHeap
(),
0
,
psclsid
);
}
static
BOOL
parse_typelib_flags
(
const
xmlstr_t
*
value
,
struct
entity
*
entity
)
...
...
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