42DEFINE_GUID(IID_IXmlReaderInput, 0x0b3ccc9b, 0x9214, 0x428b, 0xa2, 0xae, 0xef, 0x3a, 0xa8, 0x71, 0xaf, 0xda);
93 static const char *
const type_names[] =
102 "ProcessingInstruction",
118 return type_names[nodetype];
123 static const char *
const prop_names[] =
138 return prop_names[prop];
174 unsigned int allocated;
175 unsigned int written;
454 if (
reader->is_empty_element)
455 return &
reader->empty_element;
496 if (
str1->len !=
str2->len)
return 0;
701 return reader->input->pending;
706 const int initial_len = 0x2000;
712 buffer->allocated = initial_len;
728 FIXME(
"unsupported encoding %d\n", encoding);
804 if (readerinput->
stream) {
805 ISequentialStream_Release(readerinput->
stream);
817 hr = IUnknown_QueryInterface(readerinput->
input, &IID_IStream, (
void**)&readerinput->
stream);
819 hr = IUnknown_QueryInterface(readerinput->
input, &IID_ISequentialStream, (
void**)&readerinput->
stream);
867 buffer->allocated = grown_size;
873 static const char startA[] = {
'<',
'?'};
874 static const char commentA[] = {
'<',
'!'};
876 unsigned char *
ptr = (
unsigned char*)
buffer->data;
883 (
ptr[1] && (
ptr[1] <= 0x7f)) ||
884 (
buffer->data[1] >> 5) == 0x6 ||
885 (
buffer->data[1] >> 4) == 0xe ||
886 (
buffer->data[1] >> 3) == 0x1e)
893 static const char utf8bom[] = {0xef,0xbb,0xbf};
894 static const char utf16lebom[] = {0xff,0xfe};
911 else if (*ptrW ==
'<')
918 else if (!
memcmp(
buffer->data, utf8bom,
sizeof(utf8bom)))
920 buffer->cur +=
sizeof(utf8bom);
923 else if (!
memcmp(
buffer->data, utf16lebom,
sizeof(utf16lebom)))
925 buffer->cur +=
sizeof(utf16lebom);
1001 if(prev_cr && *
src ==
'\n')
1009 buffer->prev_cr = prev_cr;
1029 TRACE(
"switching to cp %d\n",
cp);
1045 dest->written += dest_len*
sizeof(
WCHAR);
1074 int len, dest_len, prev_len;
1083 prev_len =
dest->written /
sizeof(
WCHAR);
1099 dest->written += dest_len*
sizeof(
WCHAR);
1110 return reader->input->buffer->utf16.cur;
1142 reader->position.line_position = 1;
1143 else if (
ch ==
'\n')
1145 reader->position.line_number++;
1146 reader->position.line_position = 1;
1149 reader->position.line_position++;
1193 while (*
ptr >=
'0' && *
ptr <=
'9')
1230 position =
reader->position;
1259 return ((
ch >=
'A' &&
ch <=
'Z') ||
1260 (
ch >=
'a' &&
ch <=
'z') ||
1261 (
ch >=
'0' &&
ch <=
'9') ||
1262 (
ch ==
'.') || (
ch ==
'_') ||
1305 position =
reader->position;
1344 position =
reader->position;
1386 position =
reader->position;
1406 reader->empty_element.position = position;
1475 return (
ch ==
' ') ||
1476 (
ch >=
'a' &&
ch <=
'z') ||
1477 (
ch >=
'A' &&
ch <=
'Z') ||
1478 (
ch >=
'0' &&
ch <=
'9') ||
1479 (
ch >=
'-' &&
ch <=
';') ||
1480 (
ch ==
'=') || (
ch ==
'?') ||
1481 (
ch ==
'@') || (
ch ==
'!') ||
1482 (
ch >=
'#' &&
ch <=
'%') ||
1483 (
ch ==
'_') || (
ch ==
'\r') || (
ch ==
'\n');
1488 return (
ch ==
':') || (
ch >=
'A' &&
ch <=
'Z') ||
1489 (
ch ==
'_') || (
ch >=
'a' &&
ch <=
'z') ||
1490 (
ch >= 0xc0 &&
ch <= 0xd6) ||
1491 (
ch >= 0xd8 &&
ch <= 0xf6) ||
1492 (
ch >= 0xf8 &&
ch <= 0x2ff) ||
1493 (
ch >= 0x370 &&
ch <= 0x37d) ||
1494 (
ch >= 0x37f &&
ch <= 0x1fff) ||
1495 (
ch >= 0x200c &&
ch <= 0x200d) ||
1496 (
ch >= 0x2070 &&
ch <= 0x218f) ||
1497 (
ch >= 0x2c00 &&
ch <= 0x2fef) ||
1498 (
ch >= 0x3001 &&
ch <= 0xd7ff) ||
1499 (
ch >= 0xd800 &&
ch <= 0xdbff) ||
1500 (
ch >= 0xdc00 &&
ch <= 0xdfff) ||
1501 (
ch >= 0xf900 &&
ch <= 0xfdcf) ||
1502 (
ch >= 0xfdf0 &&
ch <= 0xfffd);
1508 return (
ch >=
'A' &&
ch <=
'Z') ||
1509 (
ch ==
'_') || (
ch >=
'a' &&
ch <=
'z') ||
1510 (
ch ==
'-') || (
ch ==
'.') ||
1511 (
ch >=
'0' &&
ch <=
'9') ||
1513 (
ch >= 0xc0 &&
ch <= 0xd6) ||
1514 (
ch >= 0xd8 &&
ch <= 0xf6) ||
1515 (
ch >= 0xf8 &&
ch <= 0x2ff) ||
1516 (
ch >= 0x300 &&
ch <= 0x36f) ||
1517 (
ch >= 0x370 &&
ch <= 0x37d) ||
1518 (
ch >= 0x37f &&
ch <= 0x1fff) ||
1519 (
ch >= 0x200c &&
ch <= 0x200d) ||
1520 (
ch >= 0x203f &&
ch <= 0x2040) ||
1521 (
ch >= 0x2070 &&
ch <= 0x218f) ||
1522 (
ch >= 0x2c00 &&
ch <= 0x2fef) ||
1523 (
ch >= 0x3001 &&
ch <= 0xd7ff) ||
1524 (
ch >= 0xd800 &&
ch <= 0xdbff) ||
1525 (
ch >= 0xdc00 &&
ch <= 0xdfff) ||
1526 (
ch >= 0xf900 &&
ch <= 0xfdcf) ||
1527 (
ch >= 0xfdf0 &&
ch <= 0xfffd);
1603 for (
i = 0;
i <
name.len;
i++)
1620 switch (
reader->resumestate)
1681 switch (
reader->resumestate)
1724 switch (
reader->resumestate)
1734 ERR(
"unknown resume state %d\n",
reader->resumestate);
1891 FIXME(
"internal subset parsing not implemented\n");
1928 if (check_for_separator && *
ptr ==
':')
2081 if ((*
ptr >=
'0' && *
ptr <=
'9'))
2083 else if ((*
ptr >=
'a' && *
ptr <=
'f'))
2085 else if ((*
ptr >=
'A' && *
ptr <=
'F'))
2097 if ((*
ptr >=
'0' && *
ptr <=
'9'))
2288 switch (
reader->resumestate)
2395 if (*
ptr ==
']' && *(
ptr+1) ==
']' && *(
ptr+2) ==
'>')
2445 position =
reader->position;
2449 if (
ptr[0] ==
']' &&
ptr[1] ==
']' &&
ptr[2] ==
'>')
2457 reader->empty_element.position = position;
2484 switch (
reader->resumestate)
2496 ERR(
"unknown resume state %d\n",
reader->resumestate);
2529 reader->chunk_read_off = 0;
2540 if (
reader->is_empty_element)
2565 reader->position.line_number = 1;
2566 reader->position.line_position = 1;
2626 WARN(
"found garbage in the end of XML\n");
2637 FIXME(
"internal state %d not handled\n",
reader->instate);
2661 IXmlReader_AddRef(iface);
2670 TRACE(
"%p, refcount %ld.\n", iface,
ref);
2676 struct ns *
ns, *ns2;
2694 reader->position.line_number = 0;
2695 reader->position.line_position = 0;
2714 TRACE(
"%p, refcount %ld.\n", iface,
ref);
2720 if (
This->input) IUnknown_Release(&
This->input->IXmlReaderInput_iface);
2721 if (
This->resolver) IXmlResolver_Release(
This->resolver);
2722 if (
This->mlang) IUnknown_Release(
This->mlang);
2724 if (imalloc) IMalloc_Release(imalloc);
2741 IUnknown_Release(&
This->input->IXmlReaderInput_iface);
2755 hr = IUnknown_QueryInterface(
input, &IID_IXmlReaderInput, (
void**)&readerinput);
2762 ERR(
"got external IXmlReaderInput implementation: %p, vtbl=%p\n",
2763 readerinput, readerinput->lpVtbl);
2764 IUnknown_Release(readerinput);
2770 if (
hr !=
S_OK || !readerinput)
2802 IUnknown_AddRef(
This->mlang);
2807 IXmlResolver_AddRef(
This->resolver);
2836 IUnknown_Release(
This->mlang);
2839 IUnknown_AddRef(
This->mlang);
2841 FIXME(
"Ignoring MultiLanguage %p\n",
This->mlang);
2845 IXmlResolver_Release(
This->resolver);
2848 IXmlResolver_AddRef(
This->resolver);
2872 TRACE(
"%p, %p.\n", iface, nodetype);
2877 switch (
This->state)
2900 *nodetype =
This->nodetype;
2909 TRACE(
"%p, %p.\n", iface, node_type);
2923 reader->chunk_read_off = 0;
2943 TRACE(
"%p.\n", iface);
2953 TRACE(
"%p.\n", iface);
2969 static const WCHAR xmlns_uriW[] =
L"http://www.w3.org/2000/xmlns/";
2970 static const WCHAR xml_uriW[] =
L"http://www.w3.org/XML/1998/namespace";
3031 UINT target_name_len, target_uri_len;
3039 if (!
This->attr_count)
3046 target_uri_len =
lstrlenW(namespace_uri);
3050 UINT name_len, uri_len;
3056 if (name_len == target_name_len && uri_len == target_uri_len &&
3071 TRACE(
"%p.\n", iface);
3081 if (
This->is_empty_element) {
3092 This->chunk_read_off = 0;
3213 FIXME(
"Unhandled node type %d\n", nodetype);
3329 return &
reader->attr->value;
3335 if (!
val->str && ensure_allocated)
3362 hr = IXmlReader_Read(iface, &
type);
3377 reader->chunk_read_off = -off;
3392 if (
reader->chunk_read_off >= 0)
3410 UINT *baseUri_length)
3412 FIXME(
"%p, %p, %p: stub\n", iface, baseUri, baseUri_length);
3418 FIXME(
"%p: stub\n", iface);
3426 TRACE(
"%p.\n", iface);
3470 TRACE(
"%p, %p.\n", iface, line_position);
3483 *line_position =
This->attr->position.line_position;
3487 *line_position =
This->empty_element.position.line_position;
3490 *line_position =
This->position.line_position;
3523 TRACE(
"%p.\n", iface);
3575 IUnknown_AddRef(iface);
3584 TRACE(
"%p, refcount %ld.\n", iface,
ref);
3593 TRACE(
"%p, refcount %ld.\n", iface,
ref);
3598 if (
This->input) IUnknown_Release(
This->input);
3599 if (
This->stream) ISequentialStream_Release(
This->stream);
3603 if (imalloc) IMalloc_Release(imalloc);
3634 reader->imalloc = imalloc;
3635 if (imalloc) IMalloc_AddRef(imalloc);
3643 reader->chunk_read_off = 0;
3648 IXmlReader_Release(&
reader->IXmlReader_iface);
3650 TRACE(
"returning iface %p, hr %#lx.\n", *
obj,
hr);
3663 if (!(readerinput =
m_alloc(imalloc,
sizeof(*readerinput))))
3665 memset(readerinput, 0,
sizeof(*readerinput));
3668 readerinput->
ref = 1;
3669 readerinput->
imalloc = imalloc;
3670 if (imalloc) IMalloc_AddRef(imalloc);
3680 if (imalloc) IMalloc_Release(imalloc);
3687 TRACE(
"returning iface %p\n", *ppInput);
3710 TRACE(
"%p, %p, %u, %d, %s, %p.\n",
stream, imalloc,
codepage,
hint,
wine_dbgstr_w(base_uri),
input);
#define InterlockedIncrement
#define InterlockedDecrement
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
BOOL is_char(const WCHAR s, const WCHAR c)
void quote(int argc, const char *argv[])
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_add_head(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
while(CdLookupNextInitialFileDirent(IrpContext, Fcb, FileContext))
int const char const *const int const line_number
const char * wine_dbg_sprintf(const char *format,...)
#define MultiByteToWideChar
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
_ACRTIMP int __cdecl memcmp(const void *, const void *, size_t)
static HRESULT create_reader_input(IUnknown *stream, IMalloc *imalloc, xml_encoding encoding, BOOL hint, const WCHAR *base_uri, IXmlReaderInput **ppInput)
static const strval strval_empty
static int readerinput_get_utf8_convlen(xmlreaderinput *readerinput)
static void reader_shrink(xmlreader *reader)
static HRESULT WINAPI xmlreader_ReadValueChunk(IXmlReader *iface, WCHAR *buffer, UINT chunk_size, UINT *read)
static BOOL reader_is_quote(xmlreader *reader)
static ULONG WINAPI xmlreaderinput_Release(IXmlReaderInput *iface)
static HRESULT alloc_input_buffer(xmlreaderinput *input)
HRESULT WINAPI CreateXmlReader(REFIID riid, void **obj, IMalloc *imalloc)
static HRESULT WINAPI xmlreader_GetDepth(IXmlReader *iface, UINT *depth)
static HRESULT reader_parse_attvalue(xmlreader *reader, strval *value)
static const char * debugstr_reader_prop(XmlReaderProperty prop)
static HRESULT reader_parse_pi(xmlreader *reader)
static HRESULT reader_parse_local(xmlreader *reader, strval *local, BOOL check_for_separator)
static void * readerinput_alloc(xmlreaderinput *input, size_t len)
static WCHAR * reader_get_ptr2(const xmlreader *reader, UINT offset)
static const struct IUnknownVtbl xmlreaderinputvtbl
static void reader_set_current_attribute(xmlreader *reader, struct attribute *attr)
static void free_encoded_buffer(xmlreaderinput *input, encoded_buffer *buffer)
static struct ns * reader_lookup_ns(xmlreader *reader, const strval *prefix)
BOOL is_namechar(WCHAR ch)
static HRESULT reader_parse_cdata(xmlreader *reader)
static HRESULT reader_parse_xmldecl(xmlreader *reader)
static WCHAR * reader_get_ptr(xmlreader *reader)
static HRESULT WINAPI xmlreaderinput_QueryInterface(IXmlReaderInput *iface, REFIID riid, void **ppvObject)
static HRESULT reader_parse_chardata(xmlreader *reader)
static HRESULT reader_parse_qname(xmlreader *reader, strval *prefix, strval *local, strval *qname)
static const struct IXmlReaderVtbl xmlreader_vtbl
static HRESULT WINAPI xmlreader_MoveToAttributeByName(IXmlReader *iface, const WCHAR *local_name, const WCHAR *namespace_uri)
static HRESULT WINAPI xmlreader_GetNamespaceUri(IXmlReader *iface, const WCHAR **uri, UINT *len)
static void reader_set_strvalue(xmlreader *reader, XmlReaderStringValue type, const strval *value)
static HRESULT reader_parse_stag(xmlreader *reader, strval *prefix, strval *local, strval *qname)
static HRESULT WINAPI xmlreader_SetInput(IXmlReader *iface, IUnknown *input)
static HRESULT reader_parse_versionnum(xmlreader *reader, strval *val)
static HRESULT WINAPI xmlreader_MoveToFirstAttribute(IXmlReader *iface)
static HRESULT reader_parse_attribute(xmlreader *reader)
static HRESULT WINAPI xmlreader_GetValue(IXmlReader *iface, const WCHAR **value, UINT *len)
static WCHAR * reader_get_strptr(const xmlreader *reader, const strval *v)
static void reader_get_attribute_local_name(xmlreader *reader, struct attribute *attr, const WCHAR **name, UINT *len)
static void readerinput_free(xmlreaderinput *input, void *mem)
static HRESULT reader_parse_content(xmlreader *reader)
static struct element * reader_get_element(xmlreader *reader)
static int reader_skipspaces(xmlreader *reader)
static int readerinput_get_convlen(xmlreaderinput *readerinput)
static BOOL WINAPI xmlreader_IsEOF(IXmlReader *iface)
static HRESULT WINAPI xmlreader_GetBaseUri(IXmlReader *iface, LPCWSTR *baseUri, UINT *baseUri_length)
static HRESULT reader_parse_endtag(xmlreader *reader)
static void reader_free_element(xmlreader *reader, struct element *element)
static HRESULT reader_parse_comment(xmlreader *reader)
static int is_reader_pending(xmlreader *reader)
static HRESULT reader_parse_sys_literal(xmlreader *reader, strval *literal)
static HRESULT readerinput_growraw(xmlreaderinput *readerinput)
static void * reader_alloc_zero(xmlreader *reader, size_t len)
static HRESULT WINAPI xmlreader_GetLineNumber(IXmlReader *iface, UINT *line_number)
static void reader_mark_ns_nodes(xmlreader *reader, struct element *element)
BOOL is_namestartchar(WCHAR ch)
static HRESULT WINAPI xmlreader_MoveToNextAttribute(IXmlReader *iface)
static int strval_eq(const xmlreader *reader, const strval *str1, const strval *str2)
static void reader_pop_element(xmlreader *reader)
const WCHAR * get_encoding_name(xml_encoding encoding)
static HRESULT WINAPI xmlreader_MoveToElement(IXmlReader *iface)
static HRESULT reader_inc_depth(xmlreader *reader)
HRESULT get_code_page(xml_encoding encoding, UINT *cp)
static void readerinput_shrinkraw(xmlreaderinput *readerinput, int len)
static HRESULT WINAPI xmlreader_Read(IXmlReader *iface, XmlNodeType *nodetype)
static WCHAR get_predefined_entity(const xmlreader *reader, const strval *name)
static void reader_clear_elements(xmlreader *reader)
static HRESULT WINAPI xmlreader_QueryInterface(IXmlReader *iface, REFIID riid, void **ppvObject)
static HRESULT reader_parse_misc(xmlreader *reader)
static void readerinput_release_stream(xmlreaderinput *readerinput)
static HRESULT reader_parse_externalid(xmlreader *reader)
static BOOL is_wchar_encname(WCHAR ch)
static void reader_get_attribute_ns_uri(xmlreader *reader, struct attribute *attr, const WCHAR **uri, UINT *len)
static void reader_reset_parser(xmlreader *reader)
static void reader_update_position(xmlreader *reader, WCHAR ch)
static HRESULT WINAPI xmlreader_GetPrefix(IXmlReader *iface, const WCHAR **ret, UINT *len)
static HRESULT reader_more(xmlreader *reader)
static const strval strval_xml
static void * reader_alloc(xmlreader *reader, size_t len)
static HRESULT WINAPI xmlreader_GetLinePosition(IXmlReader *iface, UINT *line_position)
@ ATTRIBUTE_DEFAULT_NS_DEFINITION
@ ATTRIBUTE_NS_DEFINITION
static HRESULT WINAPI xmlreader_GetNodeType(IXmlReader *iface, XmlNodeType *node_type)
static const struct xml_encoding_data xml_encoding_map[]
static void reader_pop_ns_nodes(xmlreader *reader, struct element *element)
static xmlreader * impl_from_IXmlReader(IXmlReader *iface)
static HRESULT reader_parse_name(xmlreader *reader, strval *name)
static HRESULT WINAPI xmlreader_GetQualifiedName(IXmlReader *iface, LPCWSTR *name, UINT *len)
static HRESULT reader_push_element(xmlreader *reader, strval *prefix, strval *localname, strval *qname, const struct reader_position *position)
HRESULT WINAPI CreateXmlReaderInputWithEncodingCodePage(IUnknown *stream, IMalloc *imalloc, UINT codepage, BOOL hint, const WCHAR *base_uri, IXmlReaderInput **input)
static HRESULT readerinput_detectencoding(xmlreaderinput *readerinput, xml_encoding *enc)
static int reader_cmp(xmlreader *reader, const WCHAR *str)
static struct ns * reader_lookup_nsdef(xmlreader *reader)
static const strval strval_xmlns
static HRESULT WINAPI xmlreader_GetAttributeCount(IXmlReader *iface, UINT *count)
static void reader_free_strvalued(xmlreader *reader, strval *v)
static ULONG WINAPI xmlreader_AddRef(IXmlReader *iface)
static HRESULT reader_parse_versioninfo(xmlreader *reader)
static ULONG WINAPI xmlreaderinput_AddRef(IXmlReaderInput *iface)
static void reader_dec_depth(xmlreader *reader)
static void reader_free(xmlreader *reader, void *mem)
xml_encoding get_encoding_from_codepage(UINT codepage)
static void reader_free_strvalue(xmlreader *reader, XmlReaderStringValue type)
static WCHAR * readerinput_strdupW(xmlreaderinput *input, const WCHAR *str)
static void readerinput_switchencoding(xmlreaderinput *readerinput, xml_encoding enc)
static HRESULT reader_parse_eq(xmlreader *reader)
static HRESULT reader_parse_pitarget(xmlreader *reader, strval *target)
static HRESULT reader_move_to_first_attribute(xmlreader *reader)
static HRESULT reader_parse_encname(xmlreader *reader, strval *val)
static xmlreaderinput * impl_from_IXmlReaderInput(IXmlReaderInput *iface)
static void reader_clear_ns(xmlreader *reader)
static HRESULT reader_parse_encdecl(xmlreader *reader, BOOL *spaces)
static void free_input_buffer(input_buffer *buffer)
static HRESULT WINAPI xmlreader_SetProperty(IXmlReader *iface, UINT property, LONG_PTR value)
@ StringValue_QualifiedName
xml_encoding parse_encoding_name(const WCHAR *name, int len)
static HRESULT reader_parse_pub_literal(xmlreader *reader, strval *literal)
static void * readerinput_realloc(xmlreaderinput *input, void *mem, size_t len)
static void reader_clear_attrs(xmlreader *reader)
static void readerinput_grow(xmlreaderinput *readerinput, int length)
static BOOL WINAPI xmlreader_IsEmptyElement(IXmlReader *iface)
static const strval * reader_get_value(xmlreader *reader, BOOL ensure_allocated)
static HRESULT WINAPI xmlreader_GetLocalName(IXmlReader *iface, LPCWSTR *name, UINT *len)
static void reader_free_strvalues(xmlreader *reader)
static UINT reader_get_cur(xmlreader *reader)
BOOL is_pubchar(WCHAR ch)
static HRESULT WINAPI xmlreader_GetProperty(IXmlReader *iface, UINT property, LONG_PTR *value)
static BOOL readerinput_is_utf8(xmlreaderinput *readerinput)
static ULONG WINAPI xmlreader_Release(IXmlReader *iface)
static HRESULT reader_parse_nextnode(xmlreader *reader)
static HRESULT reader_add_attr(xmlreader *reader, strval *prefix, strval *localname, strval *qname, strval *value, const struct reader_position *position, unsigned int flags)
static HRESULT readerinput_query_for_stream(xmlreaderinput *readerinput)
@ XmlReadResumeState_PITarget
@ XmlReadResumeState_PIBody
@ XmlReadResumeState_Initial
@ XmlReadResumeState_CharData
@ XmlReadResumeState_Comment
@ XmlReadResumeState_Whitespace
@ XmlReadResumeState_STag
@ XmlReadResumeState_CDATA
static void fixup_buffer_cr(encoded_buffer *buffer, int off)
static HRESULT reader_parse_reference(xmlreader *reader)
static BOOL WINAPI xmlreader_IsDefault(IXmlReader *iface)
@ XmlReadInState_Misc_DTD
@ XmlReadInState_DTD_Misc
BOOL is_ncnamechar(WCHAR ch)
static HRESULT reader_push_ns(xmlreader *reader, const strval *prefix, const strval *uri, BOOL def)
static void reader_init_cstrvalue(WCHAR *str, UINT len, strval *v)
static HRESULT reader_strvaldup(xmlreader *reader, const strval *src, strval *dest)
static XmlNodeType reader_get_nodetype(const xmlreader *reader)
static const char * debugstr_nodetype(XmlNodeType nodetype)
static HRESULT init_encoded_buffer(xmlreaderinput *input, encoded_buffer *buffer)
static HRESULT reader_parse_sddecl(xmlreader *reader, BOOL spaces)
static HRESULT reader_parse_element(xmlreader *reader)
static void reader_skipn(xmlreader *reader, int n)
static void reader_init_strvalue(UINT start, UINT len, strval *v)
static HRESULT reader_parse_dtd(xmlreader *reader)
static const char * debug_strval(const xmlreader *reader, const strval *v)
static HRESULT reader_parse_whitespace(xmlreader *reader)
HRESULT WINAPI CreateXmlReaderInputWithEncodingName(IUnknown *stream, IMalloc *imalloc, const WCHAR *encoding, BOOL hint, const WCHAR *base_uri, IXmlReaderInput **input)
static BSTR local_name(call_frame_t *frame, int ref)
GLint GLint GLsizei GLsizei GLsizei depth
GLuint GLuint GLsizei count
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLuint GLsizei GLsizei * length
GLenum GLenum GLenum input
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
#define memcpy(s1, s2, n)
#define memmove(s1, s2, n)
static const WCHAR publicW[]
static const WCHAR systemW[]
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
static unsigned __int64 next
static __inline const char * wine_dbgstr_guid(const GUID *id)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE struct list * list_next(const struct list *list, const struct list *elem)
#define LIST_FOR_EACH_ENTRY_REV(elem, list, type, field)
#define LIST_FOR_EACH_ENTRY_SAFE_REV(cursor, cursor2, list, type, field)
XML_HIDDEN void xmlParserErrors const char const xmlChar const xmlChar * str2
XML_HIDDEN void xmlParserErrors const char const xmlChar * str1
struct reader_position position
struct reader_position position
XmlReaderResumeState resumestate
IXmlReader IXmlReader_iface
XmlReaderInternalState instate
Character const *const prefix
#define CONTAINING_RECORD(address, type, field)
@ XmlReadState_Interactive
@ _XmlReaderProperty_Last
@ XmlReaderProperty_MultiLanguage
@ XmlReaderProperty_DtdProcessing
@ XmlReaderProperty_XmlResolver
@ XmlReaderProperty_MaxElementDepth
@ XmlReaderProperty_ReadState
@ XmlNodeType_ProcessingInstruction
@ XmlNodeType_XmlDeclaration
@ XmlNodeType_DocumentType
static void * m_alloc(IMalloc *imalloc, size_t len)
static BOOL is_wchar_space(WCHAR ch)
static void m_free(IMalloc *imalloc, void *mem)
static void * m_realloc(IMalloc *imalloc, void *mem, size_t len)