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
8954671c
Commit
8954671c
authored
Jan 27, 2013
by
Nikolay Sivov
Committed by
Alexandre Julliard
Jan 28, 2013
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
xmllite: Fail to set input for external IXmlReaderInput.
parent
9d664b22
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
24 additions
and
7 deletions
+24
-7
reader.c
dlls/xmllite/reader.c
+24
-7
No files found.
dlls/xmllite/reader.c
View file @
8954671c
...
...
@@ -114,6 +114,8 @@ typedef struct
unsigned
int
pending
:
1
;
}
xmlreaderinput
;
static
const
struct
IUnknownVtbl
xmlreaderinputvtbl
;
typedef
struct
{
WCHAR
*
str
;
...
...
@@ -1764,7 +1766,7 @@ static HRESULT WINAPI xmlreader_QueryInterface(IXmlReader *iface, REFIID riid, v
{
xmlreader
*
This
=
impl_from_IXmlReader
(
iface
);
TRACE
(
"
%p %s %p
\n
"
,
This
,
debugstr_guid
(
riid
),
ppvObject
);
TRACE
(
"
(%p)->(%s %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
ppvObject
);
if
(
IsEqualGUID
(
riid
,
&
IID_IUnknown
)
||
IsEqualGUID
(
riid
,
&
IID_IXmlReader
))
...
...
@@ -1774,6 +1776,7 @@ static HRESULT WINAPI xmlreader_QueryInterface(IXmlReader *iface, REFIID riid, v
else
{
FIXME
(
"interface %s not implemented
\n
"
,
debugstr_guid
(
riid
));
*
ppvObject
=
NULL
;
return
E_NOINTERFACE
;
}
...
...
@@ -1814,6 +1817,7 @@ static ULONG WINAPI xmlreader_Release(IXmlReader *iface)
static
HRESULT
WINAPI
xmlreader_SetInput
(
IXmlReader
*
iface
,
IUnknown
*
input
)
{
xmlreader
*
This
=
impl_from_IXmlReader
(
iface
);
IXmlReaderInput
*
readerinput
;
HRESULT
hr
;
TRACE
(
"(%p)->(%p)
\n
"
,
This
,
input
);
...
...
@@ -1838,11 +1842,23 @@ static HRESULT WINAPI xmlreader_SetInput(IXmlReader* iface, IUnknown *input)
}
/* now try IXmlReaderInput, ISequentialStream, IStream */
hr
=
IUnknown_QueryInterface
(
input
,
&
IID_IXmlReaderInput
,
(
void
**
)
&
This
->
input
);
if
(
hr
!
=
S_OK
)
hr
=
IUnknown_QueryInterface
(
input
,
&
IID_IXmlReaderInput
,
(
void
**
)
&
reader
input
);
if
(
hr
=
=
S_OK
)
{
IXmlReaderInput
*
readerinput
;
if
(
readerinput
->
lpVtbl
==
&
xmlreaderinputvtbl
)
This
->
input
=
impl_from_IXmlReaderInput
(
readerinput
);
else
{
ERR
(
"got external IXmlReaderInput implementation: %p, vtbl=%p
\n
"
,
readerinput
,
readerinput
->
lpVtbl
);
IUnknown_Release
(
readerinput
);
return
E_FAIL
;
}
}
if
(
hr
!=
S_OK
||
!
readerinput
)
{
/* create IXmlReaderInput basing on supplied interface */
hr
=
CreateXmlReaderInputWithEncodingName
(
input
,
NULL
,
NULL
,
FALSE
,
NULL
,
&
readerinput
);
...
...
@@ -2160,7 +2176,7 @@ static HRESULT WINAPI xmlreaderinput_QueryInterface(IXmlReaderInput *iface, REFI
{
xmlreaderinput
*
This
=
impl_from_IXmlReaderInput
(
iface
);
TRACE
(
"
%p %s %p
\n
"
,
This
,
debugstr_guid
(
riid
),
ppvObject
);
TRACE
(
"
(%p)->(%s %p)
\n
"
,
This
,
debugstr_guid
(
riid
),
ppvObject
);
if
(
IsEqualGUID
(
riid
,
&
IID_IXmlReaderInput
)
||
IsEqualGUID
(
riid
,
&
IID_IUnknown
))
...
...
@@ -2170,6 +2186,7 @@ static HRESULT WINAPI xmlreaderinput_QueryInterface(IXmlReaderInput *iface, REFI
else
{
WARN
(
"interface %s not implemented
\n
"
,
debugstr_guid
(
riid
));
*
ppvObject
=
NULL
;
return
E_NOINTERFACE
;
}
...
...
@@ -2207,7 +2224,7 @@ static ULONG WINAPI xmlreaderinput_Release(IXmlReaderInput *iface)
return
ref
;
}
static
const
struct
IUnknownVtbl
xmlreaderinput
_
vtbl
=
static
const
struct
IUnknownVtbl
xmlreaderinputvtbl
=
{
xmlreaderinput_QueryInterface
,
xmlreaderinput_AddRef
,
...
...
@@ -2281,7 +2298,7 @@ HRESULT WINAPI CreateXmlReaderInputWithEncodingName(IUnknown *stream,
readerinput
=
heap_alloc
(
sizeof
(
*
readerinput
));
if
(
!
readerinput
)
return
E_OUTOFMEMORY
;
readerinput
->
IXmlReaderInput_iface
.
lpVtbl
=
&
xmlreaderinput
_
vtbl
;
readerinput
->
IXmlReaderInput_iface
.
lpVtbl
=
&
xmlreaderinputvtbl
;
readerinput
->
ref
=
1
;
readerinput
->
imalloc
=
imalloc
;
readerinput
->
stream
=
NULL
;
...
...
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