37 #include "wine/list.h" 48 static const WCHAR entityW[] = {
'<',
'!',
'E',
'N',
'T',
'I',
'T',
'Y',
' '};
76 static const WCHAR iso_8859_1W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'1',0};
77 static const WCHAR iso_8859_2W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'2',0};
78 static const WCHAR iso_8859_3W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'3',0};
79 static const WCHAR iso_8859_4W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'4',0};
80 static const WCHAR iso_8859_5W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'5',0};
81 static const WCHAR iso_8859_7W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'7',0};
82 static const WCHAR iso_8859_9W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'9',0};
83 static const WCHAR iso_8859_13W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'1',
'3',0};
84 static const WCHAR iso_8859_15W[] = {
'i',
's',
'o',
'-',
'8',
'8',
'5',
'9',
'-',
'1',
'5',0};
217 This->allocated *= 2;
249 const int initial_len = 0x1000;
254 buffer->allocated = initial_len;
317 unsigned int written;
328 if (
buffer->code_page == ~0)
332 src_len *=
sizeof(
WCHAR);
340 buff->written += written;
347 IStream_Write(writer->
dest,
buff->data,
buff->written, &written);
349 if (src_len >=
buff->allocated)
350 IStream_Write(writer->
dest,
data, src_len, &written);
354 buff->written += src_len;
374 IStream_Write(writer->
dest,
buff->data,
buff->written, &written);
394 IStream_Write(writer->
dest, mb,
length, &written);
416 src_len *=
sizeof(
WCHAR);
420 unsigned int written =
min(
avail, src_len);
425 buff->written += written;
426 buffer->utf16_total += written;
490 static const WCHAR ltW[] = {
'&',
'l',
't',
';'};
491 static const WCHAR ampW[] = {
'&',
'a',
'm',
'p',
';'};
492 static const WCHAR equotW[] = {
'&',
'q',
'u',
'o',
't',
';'};
493 static const WCHAR gtW[] = {
'&',
'g',
't',
';'};
495 const int default_alloc = 100;
496 const int grow_thresh = 10;
497 int p = *
len, conv_len;
501 conv_len =
max(2**
len, default_alloc);
506 if (
ptr -
ret > conv_len - grow_thresh)
553 static const WCHAR versionW[] = {
'<',
'?',
'x',
'm',
'l',
' ',
'v',
'e',
'r',
's',
'i',
'o',
'n',
'='};
554 static const WCHAR encodingW[] = {
' ',
'e',
'n',
'c',
'o',
'd',
'i',
'n',
'g',
'=',
'\"'};
555 static const WCHAR standaloneW[] = {
' ',
's',
't',
'a',
'n',
'd',
'a',
'l',
'o',
'n',
'e',
'=',
'\"'};
556 static const WCHAR yesW[] = {
'y',
'e',
's',
'\"',
'?',
'>'};
557 static const WCHAR noW[] = {
'n',
'o',
'\"',
'?',
'>'};
597 IStream_Write(writer->
dest,
buffer->data, 0, &written);
619 static const WCHAR tabW[] = {
'\t'};
762 *
obj = &
This->ISAXContentHandler_iface;
766 *
obj = &
This->ISAXLexicalHandler_iface;
770 *
obj = &
This->ISAXDeclHandler_iface;
774 *
obj = &
This->ISAXDTDHandler_iface;
778 *
obj = &
This->ISAXErrorHandler_iface;
782 *
obj = &
This->IVBSAXDeclHandler_iface;
786 *
obj = &
This->IVBSAXLexicalHandler_iface;
790 *
obj = &
This->IVBSAXContentHandler_iface;
794 *
obj = &
This->IVBSAXDTDHandler_iface;
798 *
obj = &
This->IVBSAXErrorHandler_iface;
811 IMXWriter_AddRef(iface);
838 if (
This->dest) IStream_Release(
This->dest);
852 return IDispatchEx_GetTypeInfoCount(&
This->dispex.IDispatchEx_iface, pctinfo);
861 return IDispatchEx_GetTypeInfo(&
This->dispex.IDispatchEx_iface,
862 iTInfo, lcid, ppTInfo);
871 return IDispatchEx_GetIDsOfNames(&
This->dispex.IDispatchEx_iface,
872 riid, rgszNames, cNames, lcid, rgDispId);
882 return IDispatchEx_Invoke(&
This->dispex.IDispatchEx_iface,
883 dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
901 if (
This->dest) IStream_Release(
This->dest);
916 if (
This->dest) IStream_Release(
This->dest);
921 FIXME(
"unhandled interface type for VT_UNKNOWN destination\n");
945 IStream_AddRef(
This->dest);
968 dest_ptr +=
buff->written;
974 dest_ptr +=
buff->written;
1003 TRACE(
"got encoding %d\n",
This->xml_enc);
1164 ISAXContentHandler *iface,
1169 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
1175 return IMXWriter_AddRef(&
This->IMXWriter_iface);
1181 return IMXWriter_Release(&
This->IMXWriter_iface);
1185 ISAXContentHandler *iface,
1204 if (
This->prop_changed) {
1214 static const char utf16BOM[] = {0xff,0xfe};
1220 IStream_Write(
This->dest, utf16BOM,
sizeof(utf16BOM),
NULL);
1235 ISAXContentHandler *iface,
1236 const WCHAR *prefix,
1247 ISAXContentHandler *iface,
1248 const WCHAR *prefix,
1259 static const WCHAR eqW[] = {
'='};
1291 ISAXContentHandler *iface,
1292 const WCHAR *namespaceUri,
1298 ISAXAttributes *
attr)
1306 (nQName == -1 &&
This->class_version ==
MSXML6))
1324 int qname_len = 0, value_len = 0;
1327 hr = ISAXAttributes_getQName(
attr,
i, &qname, &qname_len);
1330 hr = ISAXAttributes_getValue(
attr,
i, &
value, &value_len);
1341 ISAXContentHandler *iface,
1342 const WCHAR *namespaceUri,
1351 TRACE(
"(%p)->(%s:%d %s:%d %s:%d)\n",
This,
debugstr_wn(namespaceUri, nnamespaceUri), nnamespaceUri,
1355 (nQName == -1 &&
This->class_version ==
MSXML6))
1362 static const WCHAR closeW[] = {
'/',
'>'};
1382 ISAXContentHandler *iface,
1417 ISAXContentHandler *iface,
1433 ISAXContentHandler *iface,
1440 static const WCHAR openpiW[] = {
'<',
'?'};
1466 ISAXContentHandler *iface,
1498 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
1504 return IMXWriter_AddRef(&
This->IMXWriter_iface);
1510 return IMXWriter_Release(&
This->IMXWriter_iface);
1514 const WCHAR *
name,
int name_len,
const WCHAR *publicId,
int publicId_len,
1515 const WCHAR *systemId,
int systemId_len)
1517 static const WCHAR doctypeW[] = {
'<',
'!',
'D',
'O',
'C',
'T',
'Y',
'P',
'E',
' '};
1518 static const WCHAR openintW[] = {
'[',
'\r',
'\n'};
1566 static const WCHAR closedtdW[] = {
']',
'>',
'\r',
'\n'};
1591 static const WCHAR scdataW[] = {
'<',
'!',
'[',
'C',
'D',
'A',
'T',
'A',
'['};
1606 static const WCHAR ecdataW[] = {
']',
']',
'>'};
1619 static const WCHAR copenW[] = {
'<',
'!',
'-',
'-'};
1620 static const WCHAR ccloseW[] = {
'-',
'-',
'>',
'\r',
'\n'};
1656 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
1662 return IMXWriter_AddRef(&
This->IMXWriter_iface);
1668 return IMXWriter_Release(&
This->IMXWriter_iface);
1674 static const WCHAR elementW[] = {
'<',
'!',
'E',
'L',
'E',
'M',
'E',
'N',
'T',
' '};
1700 static const WCHAR attlistW[] = {
'<',
'!',
'A',
'T',
'T',
'L',
'I',
'S',
'T',
' '};
1761 const WCHAR *
name,
int n_name,
const WCHAR *publicId,
int n_publicId,
1762 const WCHAR *systemId,
int n_systemId)
1810 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
1816 return IMXWriter_AddRef(&
This->IMXWriter_iface);
1822 return IMXWriter_Release(&
This->IMXWriter_iface);
1828 return IMXWriter_GetTypeInfoCount(&
This->IMXWriter_iface, pctinfo);
1834 return IMXWriter_GetTypeInfo(&
This->IMXWriter_iface, iTInfo, lcid, ppTInfo);
1841 return IMXWriter_GetIDsOfNames(&
This->IMXWriter_iface,
riid, rgszNames, cNames, lcid, rgDispId);
1848 return IMXWriter_Invoke(&
This->IMXWriter_iface, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult,
1849 pExcepInfo, puArgErr);
1858 if (!
name || !model)
1861 return ISAXDeclHandler_elementDecl(&
This->ISAXDeclHandler_iface, *
name, -1, *model, -1);
1874 return ISAXDeclHandler_attributeDecl(&
This->ISAXDeclHandler_iface, *
element, -1, *
attr, -1, *
type, -1,
1875 *default_value, -1, *
value, -1);
1887 return ISAXDeclHandler_internalEntityDecl(&
This->ISAXDeclHandler_iface, *
name, -1, *
value, -1);
1895 TRACE(
"(%p)->(%p %p %p)\n",
This,
name, publicid, systemid);
1897 if (!
name || !publicid || !systemid)
1900 return ISAXDeclHandler_externalEntityDecl(&
This->ISAXDeclHandler_iface, *
name, -1, *publicid, -1, *systemid, -1);
1922 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
1928 return IMXWriter_AddRef(&
This->IMXWriter_iface);
1934 return IMXWriter_Release(&
This->IMXWriter_iface);
1940 return IMXWriter_GetTypeInfoCount(&
This->IMXWriter_iface, pctinfo);
1946 return IMXWriter_GetTypeInfo(&
This->IMXWriter_iface, iTInfo, lcid, ppTInfo);
1953 return IMXWriter_GetIDsOfNames(&
This->IMXWriter_iface,
riid, rgszNames, cNames, lcid, rgDispId);
1960 return IMXWriter_Invoke(&
This->IMXWriter_iface, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult,
1961 pExcepInfo, puArgErr);
1968 TRACE(
"(%p)->(%p %p %p)\n",
This,
name, publicId, systemId);
1970 if (!
name || !publicId || !systemId)
1973 return ISAXLexicalHandler_startDTD(&
This->ISAXLexicalHandler_iface, *
name, -1, *publicId, -1, *systemId, -1);
1979 return ISAXLexicalHandler_endDTD(&
This->ISAXLexicalHandler_iface);
1991 return ISAXLexicalHandler_startEntity(&
This->ISAXLexicalHandler_iface, *
name, -1);
2003 return ISAXLexicalHandler_endEntity(&
This->ISAXLexicalHandler_iface, *
name, -1);
2009 return ISAXLexicalHandler_startCDATA(&
This->ISAXLexicalHandler_iface);
2015 return ISAXLexicalHandler_endCDATA(&
This->ISAXLexicalHandler_iface);
2027 return ISAXLexicalHandler_comment(&
This->ISAXLexicalHandler_iface, *chars, -1);
2051 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
2057 return IMXWriter_AddRef(&
This->IMXWriter_iface);
2063 return IMXWriter_Release(&
This->IMXWriter_iface);
2069 return IMXWriter_GetTypeInfoCount(&
This->IMXWriter_iface, pctinfo);
2075 return IMXWriter_GetTypeInfo(&
This->IMXWriter_iface, iTInfo, lcid, ppTInfo);
2082 return IMXWriter_GetIDsOfNames(&
This->IMXWriter_iface,
riid, rgszNames, cNames, lcid, rgDispId);
2089 return IMXWriter_Invoke(&
This->IMXWriter_iface, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult,
2090 pExcepInfo, puArgErr);
2103 return ISAXContentHandler_startDocument(&
This->ISAXContentHandler_iface);
2109 return ISAXContentHandler_endDocument(&
This->ISAXContentHandler_iface);
2118 if (!prefix || !
uri)
2121 return ISAXContentHandler_startPrefixMapping(&
This->ISAXContentHandler_iface, *prefix, -1, *
uri, -1);
2133 return ISAXContentHandler_endPrefixMapping(&
This->ISAXContentHandler_iface, *prefix, -1);
2137 BSTR *namespaceURI,
BSTR *localName,
BSTR *QName, IVBSAXAttributes *attrs)
2141 TRACE(
"(%p)->(%p %p %p %p)\n",
This, namespaceURI, localName, QName, attrs);
2143 if (!namespaceURI || !localName || !QName)
2155 hr = IVBSAXAttributes_get_length(attrs, &
length);
2165 hr = IVBSAXAttributes_getQName(attrs,
i, &qname);
2168 hr = IVBSAXAttributes_getValue(attrs,
i, &
value);
2189 TRACE(
"(%p)->(%p %p %p)\n",
This, namespaceURI, localName, QName);
2191 if (!namespaceURI || !localName || !QName)
2194 return ISAXContentHandler_endElement(&
This->ISAXContentHandler_iface,
2209 return ISAXContentHandler_characters(&
This->ISAXContentHandler_iface, *chars,
SysStringLen(*chars));
2221 return ISAXContentHandler_ignorableWhitespace(&
This->ISAXContentHandler_iface, *chars, -1);
2234 return ISAXContentHandler_processingInstruction(&
This->ISAXContentHandler_iface, *
target, -1, *
data, -1);
2246 return ISAXContentHandler_skippedEntity(&
This->ISAXContentHandler_iface, *
name, -1);
2273 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
2279 return IMXWriter_AddRef(&
This->IMXWriter_iface);
2285 return IMXWriter_Release(&
This->IMXWriter_iface);
2290 const WCHAR *publicid,
INT n_publicid,
2291 const WCHAR *systemid,
INT n_systemid)
2293 static const WCHAR notationW[] = {
'<',
'!',
'N',
'O',
'T',
'A',
'T',
'I',
'O',
'N',
' '};
2299 if (!
name || !n_name)
2305 if (!publicid && !systemid)
2332 const WCHAR *publicid,
INT npublicid,
2333 const WCHAR *systemid,
INT nsystemid,
2334 const WCHAR *notation,
INT nnotation)
2355 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
2361 return IMXWriter_AddRef(&
This->IMXWriter_iface);
2367 return IMXWriter_Release(&
This->IMXWriter_iface);
2373 return IMXWriter_GetTypeInfoCount(&
This->IMXWriter_iface, pctinfo);
2379 return IMXWriter_GetTypeInfo(&
This->IMXWriter_iface, iTInfo, lcid, ppTInfo);
2386 return IMXWriter_GetIDsOfNames(&
This->IMXWriter_iface,
riid, rgszNames, cNames, lcid, rgDispId);
2393 return IMXWriter_Invoke(&
This->IMXWriter_iface, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult,
2394 pExcepInfo, puArgErr);
2401 TRACE(
"(%p)->(%p %p %p)\n",
This,
name, publicId, systemId);
2403 if (!
name || !publicId || !systemId)
2406 return ISAXDTDHandler_notationDecl(&
This->ISAXDTDHandler_iface, *
name, -1, *publicId, -1, *systemId, -1);
2414 TRACE(
"(%p)->(%p %p %p %p)\n",
This,
name, publicId, systemId, notation);
2416 if (!
name || !publicId || !systemId || !notation)
2419 return ISAXDTDHandler_unparsedEntityDecl(&
This->ISAXDTDHandler_iface, *
name, -1, *publicId, -1,
2420 *systemId, -1, *notation, -1);
2439 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
2445 return IMXWriter_AddRef(&
This->IMXWriter_iface);
2451 return IMXWriter_Release(&
This->IMXWriter_iface);
2497 return IMXWriter_QueryInterface(&
This->IMXWriter_iface,
riid,
obj);
2503 return IMXWriter_AddRef(&
This->IMXWriter_iface);
2509 return IMXWriter_Release(&
This->IMXWriter_iface);
2515 return IMXWriter_GetTypeInfoCount(&
This->IMXWriter_iface, pctinfo);
2521 return IMXWriter_GetTypeInfo(&
This->IMXWriter_iface, iTInfo, lcid, ppTInfo);
2528 return IMXWriter_GetIDsOfNames(&
This->IMXWriter_iface,
riid, rgszNames, cNames, lcid, rgDispId);
2535 return IMXWriter_Invoke(&
This->IMXWriter_iface, dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult,
2536 pExcepInfo, puArgErr);
2587 static const WCHAR version10W[] = {
'1',
'.',
'0',0};
2591 TRACE(
"(%p)\n", ppObj);
2639 *ppObj = &
This->IMXWriter_iface;
2641 TRACE(
"returning iface %p\n", *ppObj);
2662 *ppObj = &
This->ISAXAttributes_iface;
2666 *ppObj = &
This->IVBSAXAttributes_iface;
2678 IMXAttributes_AddRef( iface );
2702 for (
i = 0;
i <
This->length;
i++)
2721 return IDispatchEx_GetTypeInfoCount(&
This->dispex.IDispatchEx_iface, pctinfo);
2727 return IDispatchEx_GetTypeInfo(&
This->dispex.IDispatchEx_iface, iTInfo, lcid, ppTInfo);
2731 IMXAttributes *iface,
2739 return IDispatchEx_GetIDsOfNames(&
This->dispex.IDispatchEx_iface,
2740 riid, rgszNames, cNames, lcid, rgDispId);
2744 IMXAttributes *iface,
2755 return IDispatchEx_Invoke(&
This->dispex.IDispatchEx_iface,
2756 dispIdMember,
riid, lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
2803 for (
i = 0;
i <
This->length;
i++)
2946 return IMXAttributes_QueryInterface(&
This->IMXAttributes_iface,
riid, ppObj);
2952 return IMXAttributes_AddRef(&
This->IMXAttributes_iface);
2958 return IMXAttributes_Release(&
This->IMXAttributes_iface);
3022 const WCHAR **
local,
int *local_len,
const WCHAR **qname,
int *qname_len)
3031 if (!
uri || !uri_len || !
local || !local_len || !qname || !qname_len)
3062 for (
i = 0;
i <
This->length;
i++)
3090 for (
i = 0;
i <
This->length;
i++)
3121 const WCHAR * pLocalName,
int nLocalName,
const WCHAR ** pType,
int * nType)
3125 debugstr_wn(pLocalName, nLocalName), nLocalName, pType, nType);
3130 int nQName,
const WCHAR ** pType,
int * nType)
3168 hr = ISAXAttributes_getIndexFromName(iface,
uri, uri_len,
name, name_len, &
index);
3170 hr = ISAXAttributes_getValue(iface,
index,
value, value_len);
3176 int qname_len,
const WCHAR **
value,
int *value_len)
3184 if (!qname || !
value || !value_len)
3187 hr = ISAXAttributes_getIndexFromQName(iface, qname, qname_len, &
index);
3189 hr = ISAXAttributes_getValue(iface,
index,
value, value_len);
3214 IVBSAXAttributes* iface,
3220 return ISAXAttributes_QueryInterface(&
This->ISAXAttributes_iface,
riid,
ppvObject);
3226 return ISAXAttributes_AddRef(&
This->ISAXAttributes_iface);
3232 return ISAXAttributes_Release(&
This->ISAXAttributes_iface);
3247 IVBSAXAttributes *iface,
3251 TRACE(
"(%p)->(%u %u %p)\n",
This, iTInfo, lcid, ppTInfo);
3256 IVBSAXAttributes *iface,
3270 if(!rgszNames || cNames == 0 || !rgDispId)
3276 hr = ITypeInfo_GetIDsOfNames(
typeinfo, rgszNames, cNames, rgDispId);
3284 IVBSAXAttributes *iface,
3299 lcid,
wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr);
3305 pDispParams, pVarResult, pExcepInfo, puArgErr);
3315 return ISAXAttributes_getLength(&
This->ISAXAttributes_iface,
len);
3331 hr = ISAXAttributes_getURI(&
This->ISAXAttributes_iface,
index, &uriW, &
len);
3361 const WCHAR *qnameW;
3371 hr = ISAXAttributes_getQName(&
This->ISAXAttributes_iface,
index, &qnameW, &
len);
3388 return ISAXAttributes_getIndexFromQName(&
This->ISAXAttributes_iface, qname,
3447 hr = ISAXAttributes_getTypeFromQName(&
This->ISAXAttributes_iface, qname,
SysStringLen(qname),
3510 hr = ISAXAttributes_getValueFromQName(&
This->ISAXAttributes_iface, qname,
SysStringLen(qname),
3555 static const int default_count = 10;
3558 TRACE(
"(%p)\n", ppObj);
3573 This->allocated = default_count;
3575 *ppObj = &
This->IMXAttributes_iface;
3579 TRACE(
"returning iface %p\n", *ppObj);
WINE_DEFAULT_DEBUG_CHANNEL(msxml)
INT WINAPI SysReAllocString(LPBSTR old, LPCOLESTR str)
static HRESULT WINAPI mxwriter_put_encoding(IMXWriter *iface, BSTR encoding)
static HRESULT return_bstr(const WCHAR *value, BSTR *p)
static HRESULT WINAPI VBSAXLexicalHandler_endCDATA(IVBSAXLexicalHandler *iface)
static HRESULT WINAPI VBSAXErrorHandler_GetTypeInfoCount(IVBSAXErrorHandler *iface, UINT *pctinfo)
static HRESULT WINAPI VBSAXContentHandler_GetTypeInfoCount(IVBSAXContentHandler *iface, UINT *pctinfo)
VARIANT_BOOL props[MXWriter_LastProp]
static HRESULT WINAPI VBSAXDeclHandler_internalEntityDecl(IVBSAXDeclHandler *iface, BSTR *name, BSTR *value)
#define memmove(s1, s2, n)
static const WCHAR iso_8859_3W[]
static HRESULT init_output_buffer(xml_encoding encoding, output_buffer *buffer)
static HRESULT writer_get_property(const mxwriter *writer, mxwriter_prop property, VARIANT_BOOL *value)
static const IVBSAXErrorHandlerVtbl VBSAXErrorHandlerVtbl
static HRESULT WINAPI VBSAXAttributes_getIndexFromQName(IVBSAXAttributes *iface, BSTR qname, int *index)
static ULONG WINAPI VBSAXContentHandler_AddRef(IVBSAXContentHandler *iface)
static HRESULT WINAPI SAXLexicalHandler_startEntity(ISAXLexicalHandler *iface, const WCHAR *name, int len)
static void mxwriter_write_starttag(mxwriter *writer, const WCHAR *qname, int len)
static HRESULT WINAPI SAXAttributes_getIndexFromQName(ISAXAttributes *iface, const WCHAR *qname, int len, int *index)
IVBSAXAttributes IVBSAXAttributes_iface
static mxwriter * impl_from_ISAXContentHandler(ISAXContentHandler *iface)
WINE_UNICODE_INLINE unsigned int strlenW(const WCHAR *str)
static HRESULT WINAPI VBSAXLexicalHandler_endEntity(IVBSAXLexicalHandler *iface, BSTR *name)
static HRESULT WINAPI SAXAttributes_getValue(ISAXAttributes *iface, int index, const WCHAR **value, int *len)
static const struct IVBSAXAttributesVtbl VBSAXAttributesVtbl
static const WCHAR indent[]
static HRESULT WINAPI MXAttributes_GetTypeInfoCount(IMXAttributes *iface, UINT *pctinfo)
static HRESULT WINAPI mxwriter_get_omitXMLDeclaration(IMXWriter *iface, VARIANT_BOOL *value)
#define WideCharToMultiByte
static ULONG WINAPI SAXDTDHandler_AddRef(ISAXDTDHandler *iface)
static ULONG WINAPI VBSAXDTDHandler_Release(IVBSAXDTDHandler *iface)
static ULONG WINAPI VBSAXDeclHandler_AddRef(IVBSAXDeclHandler *iface)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
static HRESULT WINAPI SAXLexicalHandler_startCDATA(ISAXLexicalHandler *iface)
static HRESULT WINAPI VBSAXAttributes_QueryInterface(IVBSAXAttributes *iface, REFIID riid, void **ppvObject)
static const IVBSAXDeclHandlerVtbl VBSAXDeclHandlerVtbl
static HRESULT WINAPI SAXContentHandler_endPrefixMapping(ISAXContentHandler *iface, const WCHAR *prefix, int nprefix)
static HRESULT WINAPI VBSAXErrorHandler_error(IVBSAXErrorHandler *iface, IVBSAXLocator *locator, BSTR *message, LONG code)
static HRESULT WINAPI mxwriter_put_standalone(IMXWriter *iface, VARIANT_BOOL value)
static HRESULT WINAPI VBSAXErrorHandler_ignorableWarning(IVBSAXErrorHandler *iface, IVBSAXLocator *locator, BSTR *message, LONG code)
static HRESULT WINAPI mxwriter_QueryInterface(IMXWriter *iface, REFIID riid, void **obj)
static HRESULT WINAPI MXAttributes_setAttribute(IMXAttributes *iface, int index, BSTR uri, BSTR localName, BSTR QName, BSTR type, BSTR value)
static ULONG WINAPI SAXLexicalHandler_AddRef(ISAXLexicalHandler *iface)
static HRESULT WINAPI MXAttributes_Invoke(IMXAttributes *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static mxwriter * impl_from_ISAXDeclHandler(ISAXDeclHandler *iface)
static HRESULT WINAPI SAXContentHandler_endElement(ISAXContentHandler *iface, const WCHAR *namespaceUri, int nnamespaceUri, const WCHAR *local_name, int nlocal_name, const WCHAR *QName, int nQName)
static HRESULT WINAPI VBSAXLexicalHandler_comment(IVBSAXLexicalHandler *iface, BSTR *chars)
static HRESULT WINAPI VBSAXDeclHandler_QueryInterface(IVBSAXDeclHandler *iface, REFIID riid, void **obj)
static HRESULT WINAPI VBSAXAttributes_getIndexFromName(IVBSAXAttributes *iface, BSTR uri, BSTR name, int *index)
static HRESULT WINAPI SAXDTDHandler_notationDecl(ISAXDTDHandler *iface, const WCHAR *name, INT n_name, const WCHAR *publicid, INT n_publicid, const WCHAR *systemid, INT n_systemid)
static const WCHAR utf8W[]
static HRESULT WINAPI VBSAXContentHandler_endDocument(IVBSAXContentHandler *iface)
static HRESULT WINAPI MXAttributes_removeAttribute(IMXAttributes *iface, int index)
static HRESULT WINAPI mxwriter_GetIDsOfNames(IMXWriter *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
IMXWriter IMXWriter_iface
static ULONG WINAPI VBSAXAttributes_AddRef(IVBSAXAttributes *iface)
static HRESULT WINAPI mxwriter_put_byteOrderMark(IMXWriter *iface, VARIANT_BOOL value)
static HRESULT WINAPI MXAttributes_setAttributes(IMXAttributes *iface, VARIANT atts)
static HRESULT WINAPI mxwriter_Invoke(IMXWriter *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static const WCHAR typeW[]
static HRESULT WINAPI MXAttributes_setLocalName(IMXAttributes *iface, int index, BSTR localName)
static void close_output_buffer(mxwriter *writer)
static ULONG WINAPI SAXAttributes_Release(ISAXAttributes *iface)
static mxwriter * impl_from_IMXWriter(IMXWriter *iface)
static HRESULT return_bstrn(const WCHAR *value, int len, BSTR *p)
static HRESULT WINAPI SAXLexicalHandler_comment(ISAXLexicalHandler *iface, const WCHAR *chars, int nchars)
ISAXLexicalHandler ISAXLexicalHandler_iface
static HRESULT WINAPI VBSAXContentHandler_processingInstruction(IVBSAXContentHandler *iface, BSTR *target, BSTR *data)
static HRESULT writer_set_property(mxwriter *writer, mxwriter_prop property, VARIANT_BOOL value)
static HRESULT write_output_buffer_quoted(mxwriter *writer, const WCHAR *data, int len)
static HRESULT WINAPI mxwriter_get_indent(IMXWriter *iface, VARIANT_BOOL *value)
static HRESULT WINAPI mxwriter_put_version(IMXWriter *iface, BSTR version)
__WINE_SERVER_LIST_INLINE struct list * list_tail(const struct list *list)
static mxwriter * impl_from_IVBSAXDeclHandler(IVBSAXDeclHandler *iface)
static HRESULT WINAPI VBSAXAttributes_getURI(IVBSAXAttributes *iface, int index, BSTR *uri)
static HRESULT WINAPI SAXContentHandler_startElement(ISAXContentHandler *iface, const WCHAR *namespaceUri, int nnamespaceUri, const WCHAR *local_name, int nlocal_name, const WCHAR *QName, int nQName, ISAXAttributes *attr)
static const WCHAR iso_8859_9W[]
static HRESULT WINAPI VBSAXDTDHandler_GetIDsOfNames(IVBSAXDTDHandler *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
IVBSAXContentHandler IVBSAXContentHandler_iface
ISAXErrorHandler ISAXErrorHandler_iface
static HRESULT WINAPI VBSAXDTDHandler_Invoke(IVBSAXDTDHandler *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static void * heap_realloc(void *mem, size_t len)
static void free_encoded_buffer(encoded_buffer *buffer)
static void * heap_alloc(size_t len)
static ULONG WINAPI SAXDTDHandler_Release(ISAXDTDHandler *iface)
WINE_UNICODE_INLINE int strncmpW(const WCHAR *str1, const WCHAR *str2, int n)
static HRESULT WINAPI VBSAXContentHandler_skippedEntity(IVBSAXContentHandler *iface, BSTR *name)
static HRESULT WINAPI SAXDeclHandler_attributeDecl(ISAXDeclHandler *iface, const WCHAR *element, int n_element, const WCHAR *attr, int n_attr, const WCHAR *type, int n_type, const WCHAR *Default, int n_default, const WCHAR *value, int n_value)
static HRESULT WINAPI VBSAXAttributes_getQName(IVBSAXAttributes *iface, int index, BSTR *qname)
static HRESULT WINAPI SAXAttributes_getIndexFromName(ISAXAttributes *iface, const WCHAR *uri, int uri_len, const WCHAR *name, int len, int *index)
static void close_element_starttag(mxwriter *writer)
static HRESULT WINAPI VBSAXDeclHandler_GetIDsOfNames(IVBSAXDeclHandler *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI mxwriter_get_version(IMXWriter *iface, BSTR *version)
static const WCHAR iso_8859_4W[]
static HRESULT WINAPI MXAttributes_setQName(IMXAttributes *iface, int index, BSTR QName)
__WINE_SERVER_LIST_INLINE void list_add_tail(struct list *list, struct list *elem)
static const WCHAR crlfW[]
static ULONG WINAPI VBSAXDeclHandler_Release(IVBSAXDeclHandler *iface)
static HRESULT WINAPI mxwriter_GetTypeInfoCount(IMXWriter *iface, UINT *pctinfo)
static HRESULT WINAPI mxwriter_put_indent(IMXWriter *iface, VARIANT_BOOL value)
#define LIST_FOR_EACH_ENTRY(elem, list, type, field)
static HRESULT WINAPI VBSAXContentHandler_ignorableWhitespace(IVBSAXContentHandler *iface, BSTR *chars)
static const IVBSAXDTDHandlerVtbl VBSAXDTDHandlerVtbl
static HRESULT WINAPI mxwriter_put_omitXMLDeclaration(IMXWriter *iface, VARIANT_BOOL value)
static mxattributes * impl_from_ISAXAttributes(ISAXAttributes *iface)
static HRESULT WINAPI SAXContentHandler_QueryInterface(ISAXContentHandler *iface, REFIID riid, void **obj)
static HRESULT WINAPI mxwriter_put_disableOutputEscaping(IMXWriter *iface, VARIANT_BOOL value)
static HRESULT WINAPI MXAttributes_QueryInterface(IMXAttributes *iface, REFIID riid, void **ppObj)
static const ISAXAttributesVtbl SAXAttributesVtbl
static HRESULT write_data_to_stream(mxwriter *writer)
static HRESULT WINAPI SAXLexicalHandler_endEntity(ISAXLexicalHandler *iface, const WCHAR *name, int len)
static HRESULT WINAPI SAXAttributes_getLength(ISAXAttributes *iface, int *length)
static const ISAXDeclHandlerVtbl SAXDeclHandlerVtbl
static const WCHAR iso_8859_15W[]
static HRESULT WINAPI SAXContentHandler_startPrefixMapping(ISAXContentHandler *iface, const WCHAR *prefix, int nprefix, const WCHAR *uri, int nuri)
static ULONG WINAPI VBSAXLexicalHandler_AddRef(IVBSAXLexicalHandler *iface)
static ULONG WINAPI VBSAXContentHandler_Release(IVBSAXContentHandler *iface)
GLenum GLuint GLenum GLsizei length
static const tid_t mxattrs_iface_tids[]
static HRESULT WINAPI VBSAXContentHandler_GetTypeInfo(IVBSAXContentHandler *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI VBSAXErrorHandler_GetIDsOfNames(IVBSAXErrorHandler *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static ULONG WINAPI mxwriter_Release(IMXWriter *iface)
static ULONG WINAPI SAXContentHandler_Release(ISAXContentHandler *iface)
IVBSAXLexicalHandler IVBSAXLexicalHandler_iface
static ULONG WINAPI VBSAXAttributes_Release(IVBSAXAttributes *iface)
static const WCHAR yesW[]
static const WCHAR version[]
static HRESULT WINAPI VBSAXErrorHandler_fatalError(IVBSAXErrorHandler *iface, IVBSAXLocator *locator, BSTR *message, LONG code)
BSTR WINAPI SysAllocString(LPCOLESTR str)
HRESULT get_typeinfo(enum type_id tid, ITypeInfo **ret)
static HRESULT WINAPI MXAttributes_clear(IMXAttributes *iface)
static HRESULT WINAPI VBSAXDTDHandler_GetTypeInfoCount(IVBSAXDTDHandler *iface, UINT *pctinfo)
static mxwriter * impl_from_IVBSAXDTDHandler(IVBSAXDTDHandler *iface)
static mxattributes * impl_from_IMXAttributes(IMXAttributes *iface)
static const WCHAR valueW[]
static const WCHAR entityW[]
static const IVBSAXContentHandlerVtbl VBSAXContentHandlerVtbl
static ULONG WINAPI VBSAXErrorHandler_AddRef(IVBSAXErrorHandler *iface)
static HRESULT WINAPI mxwriter_get_encoding(IMXWriter *iface, BSTR *encoding)
static HRESULT WINAPI SAXAttributes_getURI(ISAXAttributes *iface, int index, const WCHAR **uri, int *len)
static void writer_inc_indent(mxwriter *This)
static ULONG WINAPI MXAttributes_Release(IMXAttributes *iface)
static HRESULT WINAPI VBSAXDTDHandler_notationDecl(IVBSAXDTDHandler *iface, BSTR *name, BSTR *publicId, BSTR *systemId)
static HRESULT WINAPI VBSAXLexicalHandler_GetTypeInfo(IVBSAXLexicalHandler *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static ULONG WINAPI MXAttributes_AddRef(IMXAttributes *iface)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
static HRESULT WINAPI SAXAttributes_getQName(ISAXAttributes *iface, int index, const WCHAR **qname, int *length)
static void writer_dec_indent(mxwriter *This)
static const IVBSAXLexicalHandlerVtbl VBSAXLexicalHandlerVtbl
static HRESULT WINAPI SAXErrorHandler_ignorableWarning(ISAXErrorHandler *iface, ISAXLocator *locator, const WCHAR *message, HRESULT hr)
static HRESULT WINAPI VBSAXContentHandler_endPrefixMapping(IVBSAXContentHandler *iface, BSTR *prefix)
static HRESULT init_encoded_buffer(encoded_buffer *buffer)
static ULONG WINAPI SAXAttributes_AddRef(ISAXAttributes *iface)
static const WCHAR nameW[]
static mxwriter * impl_from_ISAXLexicalHandler(ISAXLexicalHandler *iface)
static HRESULT WINAPI VBSAXLexicalHandler_startDTD(IVBSAXLexicalHandler *iface, BSTR *name, BSTR *publicId, BSTR *systemId)
static HRESULT WINAPI SAXDTDHandler_QueryInterface(ISAXDTDHandler *iface, REFIID riid, void **obj)
__WINE_SERVER_LIST_INLINE void list_remove(struct list *elem)
static HRESULT WINAPI MXAttributes_setURI(IMXAttributes *iface, int index, BSTR uri)
static const struct ISAXLexicalHandlerVtbl SAXLexicalHandlerVtbl
static HRESULT WINAPI MXAttributes_addAttribute(IMXAttributes *iface, BSTR uri, BSTR localName, BSTR QName, BSTR type, BSTR value)
static HRESULT WINAPI VBSAXContentHandler_QueryInterface(IVBSAXContentHandler *iface, REFIID riid, void **obj)
static HRESULT WINAPI SAXLexicalHandler_endDTD(ISAXLexicalHandler *iface)
static mxwriter * impl_from_ISAXDTDHandler(ISAXDTDHandler *iface)
static HRESULT get_code_page(xml_encoding encoding, UINT *cp)
static void reset_output_buffer(mxwriter *This)
static HRESULT WINAPI mxwriter_put_output(IMXWriter *iface, VARIANT dest)
static xml_encoding parse_encoding_name(const WCHAR *encoding)
IMXAttributes IMXAttributes_iface
static const ISAXErrorHandlerVtbl SAXErrorHandlerVtbl
static ULONG WINAPI VBSAXDTDHandler_AddRef(IVBSAXDTDHandler *iface)
static const ISAXDTDHandlerVtbl SAXDTDHandlerVtbl
static const WCHAR closepiW[]
static HRESULT WINAPI VBSAXErrorHandler_Invoke(IVBSAXErrorHandler *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static void write_node_indent(mxwriter *writer)
static HRESULT WINAPI SAXContentHandler_skippedEntity(ISAXContentHandler *iface, const WCHAR *name, int nname)
static const IMXAttributesVtbl MXAttributesVtbl
static HRESULT WINAPI mxwriter_GetTypeInfo(IMXWriter *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI SAXContentHandler_characters(ISAXContentHandler *iface, const WCHAR *chars, int nchars)
static HRESULT WINAPI VBSAXAttributes_getValueFromName(IVBSAXAttributes *iface, BSTR uri, BSTR name, BSTR *value)
static HRESULT WINAPI SAXAttributes_getType(ISAXAttributes *iface, int index, const WCHAR **type, int *len)
static HRESULT WINAPI VBSAXLexicalHandler_Invoke(IVBSAXLexicalHandler *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
static const WCHAR emptyW[]
static HRESULT WINAPI SAXContentHandler_ignorableWhitespace(ISAXContentHandler *iface, const WCHAR *chars, int nchars)
static HRESULT WINAPI VBSAXLexicalHandler_startEntity(IVBSAXLexicalHandler *iface, BSTR *name)
static HRESULT WINAPI VBSAXAttributes_GetIDsOfNames(IVBSAXAttributes *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static HRESULT WINAPI mxwriter_get_output(IMXWriter *iface, VARIANT *dest)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
static HRESULT WINAPI MXAttributes_GetIDsOfNames(IMXAttributes *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static void mxwriter_write_attribute(mxwriter *writer, const WCHAR *qname, int qname_len, const WCHAR *value, int value_len, BOOL escape)
static HRESULT WINAPI SAXAttributes_getTypeFromName(ISAXAttributes *iface, const WCHAR *pUri, int nUri, const WCHAR *pLocalName, int nLocalName, const WCHAR **pType, int *nType)
static HRESULT WINAPI VBSAXAttributes_GetTypeInfoCount(IVBSAXAttributes *iface, UINT *pctinfo)
MSXML_VERSION class_version
static const WCHAR iso_8859_1W[]
static dispex_static_data_t mxwriter_dispex
static HRESULT WINAPI MXAttributes_setValue(IMXAttributes *iface, int index, BSTR value)
static ULONG WINAPI SAXErrorHandler_AddRef(ISAXErrorHandler *iface)
static WCHAR * get_escaped_string(const WCHAR *str, escape_mode mode, int *len)
static HRESULT WINAPI VBSAXDeclHandler_attributeDecl(IVBSAXDeclHandler *iface, BSTR *element, BSTR *attr, BSTR *type, BSTR *default_value, BSTR *value)
static HRESULT WINAPI mxwriter_flush(IMXWriter *iface)
static HRESULT WINAPI SAXAttributes_getLocalName(ISAXAttributes *iface, int index, const WCHAR **name, int *len)