Module: wine Branch: master Commit: ac83cb99ee1736a5f77b6b7abbca506a37708507 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ac83cb99ee1736a5f77b6b7abb...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Sun Oct 30 11:05:28 2016 +0300
xmllite: Store and return MultiLanguage reader property.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/xmllite/reader.c | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/dlls/xmllite/reader.c b/dlls/xmllite/reader.c index b6fce80..deab301 100644 --- a/dlls/xmllite/reader.c +++ b/dlls/xmllite/reader.c @@ -244,6 +244,7 @@ typedef struct XmlNodeType nodetype; DtdProcessing dtdmode; IXmlResolver *resolver; + IUnknown *mlang; UINT line, pos; /* reader position in XML stream */ struct list attrs; /* attributes list for current node */ struct attribute *attr; /* current attribute */ @@ -2474,6 +2475,7 @@ static ULONG WINAPI xmlreader_Release(IXmlReader *iface) IMalloc *imalloc = This->imalloc; if (This->input) IUnknown_Release(&This->input->IXmlReaderInput_iface); if (This->resolver) IXmlResolver_Release(This->resolver); + if (This->mlang) IUnknown_Release(This->mlang); reader_clear_attrs(This); reader_clear_elements(This); reader_free_strvalues(This); @@ -2558,6 +2560,11 @@ static HRESULT WINAPI xmlreader_GetProperty(IXmlReader* iface, UINT property, LO
switch (property) { + case XmlReaderProperty_MultiLanguage: + *value = (LONG_PTR)This->mlang; + if (This->mlang) + IUnknown_AddRef(This->mlang); + break; case XmlReaderProperty_XmlResolver: *value = (LONG_PTR)This->resolver; if (This->resolver) @@ -2586,8 +2593,13 @@ static HRESULT WINAPI xmlreader_SetProperty(IXmlReader* iface, UINT property, LO switch (property) { case XmlReaderProperty_MultiLanguage: - if (value) - FIXME("Ignoring MultiLanguage %lx\n", value); + if (This->mlang) + IUnknown_Release(This->mlang); + This->mlang = (IUnknown*)value; + if (This->mlang) + IUnknown_AddRef(This->mlang); + if (This->mlang) + FIXME("Ignoring MultiLanguage %p\n", This->mlang); break; case XmlReaderProperty_XmlResolver: if (This->resolver) @@ -2996,6 +3008,7 @@ HRESULT WINAPI CreateXmlReader(REFIID riid, void **obj, IMalloc *imalloc) reader->resumestate = XmlReadResumeState_Initial; reader->dtdmode = DtdProcessing_Prohibit; reader->resolver = NULL; + reader->mlang = NULL; reader->line = reader->pos = 0; reader->imalloc = imalloc; if (imalloc) IMalloc_AddRef(imalloc);