Author: cwittich
Date: Sun Sep 21 08:03:20 2008
New Revision: 36374
URL:
http://svn.reactos.org/svn/reactos?rev=36374&view=rev
Log:
sync msxml3 with wine 1.1.5
Modified:
trunk/reactos/dll/win32/advapi32/service/scm.c
trunk/reactos/dll/win32/msxml3/cdata.c
trunk/reactos/dll/win32/msxml3/comment.c
trunk/reactos/dll/win32/msxml3/queryresult.c
trunk/reactos/dll/win32/msxml3/saxreader.c
trunk/reactos/include/psdk/msxml2.idl
Modified: trunk/reactos/dll/win32/advapi32/service/scm.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/advapi32/service…
==============================================================================
--- trunk/reactos/dll/win32/advapi32/service/scm.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/advapi32/service/scm.c [iso-8859-1] Sun Sep 21 08:03:20 2008
@@ -2124,6 +2124,29 @@
DWORD cbBufSize,
LPDWORD pcbBytesNeeded)
{
+
+ SECURITY_DESCRIPTOR descriptor;
+ DWORD size;
+ BOOL succ;
+ ACL acl;
+
+ FIXME("%p %d %p %u %p - semi-stub\n", hService, dwSecurityInformation,
+ lpSecurityDescriptor, cbBufSize, pcbBytesNeeded);
+
+ if (dwSecurityInformation != DACL_SECURITY_INFORMATION)
+ FIXME("information %d not supported\n", dwSecurityInformation);
+
+ InitializeSecurityDescriptor(&descriptor, SECURITY_DESCRIPTOR_REVISION);
+
+ InitializeAcl(&acl, sizeof(ACL), ACL_REVISION);
+ SetSecurityDescriptorDacl(&descriptor, TRUE, &acl, TRUE);
+
+ size = cbBufSize;
+ succ = RtlMakeSelfRelativeSD(&descriptor, lpSecurityDescriptor, &size);
+ *pcbBytesNeeded = size;
+ return succ;
+
+#if 0
DWORD dwError;
TRACE("QueryServiceObjectSecurity(%p, %lu, %p)\n",
@@ -2155,6 +2178,7 @@
}
return TRUE;
+#endif
}
/**********************************************************************
@@ -2167,6 +2191,9 @@
SECURITY_INFORMATION dwSecurityInformation,
PSECURITY_DESCRIPTOR lpSecurityDescriptor)
{
+ FIXME("%p %d %p\n", hService, dwSecurityInformation, lpSecurityDescriptor);
+ return TRUE;
+#if 0
PSECURITY_DESCRIPTOR SelfRelativeSD = NULL;
ULONG Length;
NTSTATUS Status;
@@ -2226,6 +2253,7 @@
}
return TRUE;
+#endif
}
Modified: trunk/reactos/dll/win32/msxml3/cdata.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/cdata.c?r…
==============================================================================
--- trunk/reactos/dll/win32/msxml3/cdata.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/cdata.c [iso-8859-1] Sun Sep 21 08:03:20 2008
@@ -59,6 +59,7 @@
TRACE("%p %s %p\n", This, debugstr_guid(riid), ppvObject);
if ( IsEqualGUID( riid, &IID_IXMLDOMCDATASection ) ||
+ IsEqualGUID( riid, &IID_IXMLDOMCharacterData) ||
IsEqualGUID( riid, &IID_IDispatch ) ||
IsEqualGUID( riid, &IID_IUnknown ) )
{
Modified: trunk/reactos/dll/win32/msxml3/comment.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/comment.c…
==============================================================================
--- trunk/reactos/dll/win32/msxml3/comment.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/comment.c [iso-8859-1] Sun Sep 21 08:03:20 2008
@@ -59,6 +59,7 @@
TRACE("%p %s %p\n", This, debugstr_guid(riid), ppvObject);
if ( IsEqualGUID( riid, &IID_IXMLDOMComment ) ||
+ IsEqualGUID( riid, &IID_IXMLDOMCharacterData) ||
IsEqualGUID( riid, &IID_IDispatch ) ||
IsEqualGUID( riid, &IID_IUnknown ) )
{
Modified: trunk/reactos/dll/win32/msxml3/queryresult.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/queryresu…
==============================================================================
--- trunk/reactos/dll/win32/msxml3/queryresult.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/queryresult.c [iso-8859-1] Sun Sep 21 08:03:20 2008
@@ -65,6 +65,8 @@
return (queryresult *)((char*)iface - FIELD_OFFSET(queryresult, lpVtbl));
}
+#define XMLQUERYRES(x) ((IXMLDOMNodeList*)&(x)->lpVtbl)
+
static HRESULT WINAPI queryresult_QueryInterface(
IXMLDOMNodeList *iface,
REFIID riid,
@@ -326,13 +328,28 @@
{
queryresult *This = impl_from_IXMLDOMNodeList( (IXMLDOMNodeList*)iface );
- if(flags != DISPATCH_PROPERTYGET) {
- FIXME("flags %x\n", flags);
- return E_NOTIMPL;
- }
+ TRACE("(%p)->(%x %x %x %p %p %p)\n", This, id, lcid, flags, params, res,
ei);
V_VT(res) = VT_DISPATCH;
- V_DISPATCH(res) =
(IDispatch*)create_node(This->result->nodesetval->nodeTab[This->resultPos]);
+ V_DISPATCH(res) = NULL;
+
+ switch(flags)
+ {
+ case INVOKE_PROPERTYGET:
+ {
+ IXMLDOMNode *disp = NULL;
+
+ queryresult_get_item(XMLQUERYRES(This), id - MSXML_DISPID_CUSTOM_MIN,
&disp);
+ V_DISPATCH(res) = (IDispatch*)&disp;
+ break;
+ }
+ default:
+ {
+ FIXME("unimplemented flags %x\n", flags);
+ break;
+ }
+ }
+
return S_OK;
}
Modified: trunk/reactos/dll/win32/msxml3/saxreader.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/msxml3/saxreader…
==============================================================================
--- trunk/reactos/dll/win32/msxml3/saxreader.c [iso-8859-1] (original)
+++ trunk/reactos/dll/win32/msxml3/saxreader.c [iso-8859-1] Sun Sep 21 08:03:20 2008
@@ -1680,6 +1680,57 @@
return S_OK;
}
+static HRESULT internal_parseStream(saxreader *This, IStream *stream, BOOL vbInterface)
+{
+ saxlocator *locator;
+ HRESULT hr;
+ ULONG dataRead;
+ char data[1024];
+
+ hr = IStream_Read(stream, data, sizeof(data), &dataRead);
+ if(hr != S_OK)
+ return hr;
+
+ hr = SAXLocator_create(This, &locator, vbInterface);
+ if(FAILED(hr))
+ return E_FAIL;
+
+ locator->pParserCtxt = xmlCreatePushParserCtxt(
+ &locator->saxreader->sax, locator,
+ data, dataRead, NULL);
+ if(!locator->pParserCtxt)
+ {
+ ISAXLocator_Release((ISAXLocator*)&locator->lpSAXLocatorVtbl);
+ return E_FAIL;
+ }
+
+ while(1)
+ {
+ hr = IStream_Read(stream, data, sizeof(data), &dataRead);
+ if(hr != S_OK)
+ break;
+
+ if(xmlParseChunk(locator->pParserCtxt, data, dataRead, 0)) hr = E_FAIL;
+ else hr = locator->ret;
+
+ if(hr != S_OK) break;
+
+ if(dataRead != sizeof(data))
+ {
+ if(xmlParseChunk(locator->pParserCtxt, data, 0, 1)) hr = E_FAIL;
+ else hr = locator->ret;
+
+ break;
+ }
+ }
+
+ locator->pParserCtxt->sax = NULL;
+ xmlFreeParserCtxt(locator->pParserCtxt);
+ locator->pParserCtxt = NULL;
+ ISAXLocator_Release((ISAXLocator*)&locator->lpSAXLocatorVtbl);
+ return hr;
+}
+
static HRESULT WINAPI internal_getEntityResolver(
saxreader *This,
void *pEntityResolver,
@@ -1867,47 +1918,7 @@
if(stream || IUnknown_QueryInterface(V_UNKNOWN(&varInput),
&IID_IStream, (void**)&stream) == S_OK)
{
- STATSTG dataInfo;
- ULONG dataRead;
- char *data;
-
- while(1)
- {
- hr = IStream_Stat(stream, &dataInfo, STATFLAG_NONAME);
- if(hr == E_PENDING) continue;
- break;
- }
- if(hr != S_OK)
- {
- IStream_Release(stream);
- break;
- }
-
- data = HeapAlloc(GetProcessHeap(), 0,
- dataInfo.cbSize.QuadPart);
- if(!data)
- {
- IStream_Release(stream);
- break;
- }
-
- while(1)
- {
- hr = IStream_Read(stream, data,
- dataInfo.cbSize.QuadPart, &dataRead);
- if(hr == E_PENDING) continue;
- break;
- }
- if(hr != S_OK)
- {
- HeapFree(GetProcessHeap(), 0, data);
- IStream_Release(stream);
- break;
- }
-
- hr = internal_parseBuffer(This, data,
- dataInfo.cbSize.QuadPart, vbInterface);
- HeapFree(GetProcessHeap(), 0, data);
+ hr = internal_parseStream(This, stream, vbInterface);
IStream_Release(stream);
break;
}
@@ -2161,7 +2172,7 @@
return E_NOTIMPL;
}
-static HRESULT WINAPI saxxmlreader_getEntityResolver(
+static HRESULT WINAPI saxxmlreader_get_entityResolver(
IVBSAXXMLReader* iface,
IVBSAXEntityResolver **pEntityResolver)
{
@@ -2169,7 +2180,7 @@
return internal_getEntityResolver(This, pEntityResolver, TRUE);
}
-static HRESULT WINAPI saxxmlreader_putEntityResolver(
+static HRESULT WINAPI saxxmlreader_put_entityResolver(
IVBSAXXMLReader* iface,
IVBSAXEntityResolver *pEntityResolver)
{
@@ -2177,7 +2188,7 @@
return internal_putEntityResolver(This, pEntityResolver, TRUE);
}
-static HRESULT WINAPI saxxmlreader_getContentHandler(
+static HRESULT WINAPI saxxmlreader_get_contentHandler(
IVBSAXXMLReader* iface,
IVBSAXContentHandler **ppContentHandler)
{
@@ -2185,7 +2196,7 @@
return internal_getContentHandler(This, ppContentHandler, TRUE);
}
-static HRESULT WINAPI saxxmlreader_putContentHandler(
+static HRESULT WINAPI saxxmlreader_put_contentHandler(
IVBSAXXMLReader* iface,
IVBSAXContentHandler *contentHandler)
{
@@ -2193,7 +2204,7 @@
return internal_putContentHandler(This, contentHandler, TRUE);
}
-static HRESULT WINAPI saxxmlreader_getDTDHandler(
+static HRESULT WINAPI saxxmlreader_get_dtdHandler(
IVBSAXXMLReader* iface,
IVBSAXDTDHandler **pDTDHandler)
{
@@ -2201,7 +2212,7 @@
return internal_getDTDHandler(This, pDTDHandler, TRUE);
}
-static HRESULT WINAPI saxxmlreader_putDTDHandler(
+static HRESULT WINAPI saxxmlreader_put_dtdHandler(
IVBSAXXMLReader* iface,
IVBSAXDTDHandler *pDTDHandler)
{
@@ -2209,7 +2220,7 @@
return internal_putDTDHandler(This, pDTDHandler, TRUE);
}
-static HRESULT WINAPI saxxmlreader_getErrorHandler(
+static HRESULT WINAPI saxxmlreader_get_errorHandler(
IVBSAXXMLReader* iface,
IVBSAXErrorHandler **pErrorHandler)
{
@@ -2217,7 +2228,7 @@
return internal_getErrorHandler(This, pErrorHandler, TRUE);
}
-static HRESULT WINAPI saxxmlreader_putErrorHandler(
+static HRESULT WINAPI saxxmlreader_put_errorHandler(
IVBSAXXMLReader* iface,
IVBSAXErrorHandler *errorHandler)
{
@@ -2225,7 +2236,7 @@
return internal_putErrorHandler(This, errorHandler, TRUE);
}
-static HRESULT WINAPI saxxmlreader_getBaseURL(
+static HRESULT WINAPI saxxmlreader_get_baseURL(
IVBSAXXMLReader* iface,
const WCHAR **pBaseUrl)
{
@@ -2235,7 +2246,7 @@
return E_NOTIMPL;
}
-static HRESULT WINAPI saxxmlreader_putBaseURL(
+static HRESULT WINAPI saxxmlreader_put_baseURL(
IVBSAXXMLReader* iface,
const WCHAR *pBaseUrl)
{
@@ -2245,7 +2256,7 @@
return E_NOTIMPL;
}
-static HRESULT WINAPI saxxmlreader_getSecureBaseURL(
+static HRESULT WINAPI saxxmlreader_get_secureBaseURL(
IVBSAXXMLReader* iface,
const WCHAR **pSecureBaseUrl)
{
@@ -2256,7 +2267,7 @@
}
-static HRESULT WINAPI saxxmlreader_putSecureBaseURL(
+static HRESULT WINAPI saxxmlreader_put_secureBaseURL(
IVBSAXXMLReader* iface,
const WCHAR *secureBaseUrl)
{
@@ -2295,18 +2306,18 @@
saxxmlreader_putFeature,
saxxmlreader_getProperty,
saxxmlreader_putProperty,
- saxxmlreader_getEntityResolver,
- saxxmlreader_putEntityResolver,
- saxxmlreader_getContentHandler,
- saxxmlreader_putContentHandler,
- saxxmlreader_getDTDHandler,
- saxxmlreader_putDTDHandler,
- saxxmlreader_getErrorHandler,
- saxxmlreader_putErrorHandler,
- saxxmlreader_getBaseURL,
- saxxmlreader_putBaseURL,
- saxxmlreader_getSecureBaseURL,
- saxxmlreader_putSecureBaseURL,
+ saxxmlreader_get_entityResolver,
+ saxxmlreader_put_entityResolver,
+ saxxmlreader_get_contentHandler,
+ saxxmlreader_put_contentHandler,
+ saxxmlreader_get_dtdHandler,
+ saxxmlreader_put_dtdHandler,
+ saxxmlreader_get_errorHandler,
+ saxxmlreader_put_errorHandler,
+ saxxmlreader_get_baseURL,
+ saxxmlreader_put_baseURL,
+ saxxmlreader_get_secureBaseURL,
+ saxxmlreader_put_secureBaseURL,
saxxmlreader_parse,
saxxmlreader_parseURL
};
@@ -2445,7 +2456,7 @@
const WCHAR **pBaseUrl)
{
saxreader *This = impl_from_ISAXXMLReader( iface );
- return IVBSAXXMLReader_get_getBaseURL(
+ return IVBSAXXMLReader_get_baseURL(
(IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl,
pBaseUrl);
}
@@ -2455,7 +2466,7 @@
const WCHAR *pBaseUrl)
{
saxreader *This = impl_from_ISAXXMLReader( iface );
- return IVBSAXXMLReader_put_putBaseURL(
+ return IVBSAXXMLReader_put_baseURL(
(IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl,
pBaseUrl);
}
@@ -2465,7 +2476,7 @@
const WCHAR **pSecureBaseUrl)
{
saxreader *This = impl_from_ISAXXMLReader( iface );
- return IVBSAXXMLReader_get_getSecureBaseURL(
+ return IVBSAXXMLReader_get_secureBaseURL(
(IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl,
pSecureBaseUrl);
}
@@ -2475,7 +2486,7 @@
const WCHAR *secureBaseUrl)
{
saxreader *This = impl_from_ISAXXMLReader( iface );
- return IVBSAXXMLReader_put_putSecureBaseURL(
+ return IVBSAXXMLReader_put_secureBaseURL(
(IVBSAXXMLReader*)&This->lpVBSAXXMLReaderVtbl,
secureBaseUrl);
}
Modified: trunk/reactos/include/psdk/msxml2.idl
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/msxml2.idl?re…
==============================================================================
--- trunk/reactos/include/psdk/msxml2.idl [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/msxml2.idl [iso-8859-1] Sun Sep 21 08:03:20 2008
@@ -1736,40 +1736,40 @@
HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
[propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
- HRESULT getEntityResolver(
+ HRESULT entityResolver(
[out, retval] IVBSAXEntityResolver ** ppEntityResolver);
[propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
- HRESULT putEntityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
+ HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
[propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
- HRESULT getContentHandler(
+ HRESULT contentHandler(
[out, retval] IVBSAXContentHandler ** pContentHandler);
[propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
- HRESULT putContentHandler([in] IVBSAXContentHandler * contentHandler);
+ HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
[propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
- HRESULT getDTDHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
+ HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
[propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
- HRESULT putDTDHandler([in] IVBSAXDTDHandler * pDTDHandler);
+ HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
[propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
- HRESULT getErrorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
+ HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
[propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
- HRESULT putErrorHandler([in] IVBSAXErrorHandler * errorHandler);
+ HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
[propget, id(DISPID_SAX_XMLREADER_BASEURL)]
- HRESULT getBaseURL([out, retval] const WCHAR ** pBaseUrl);
+ HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
[propput, id(DISPID_SAX_XMLREADER_BASEURL)]
- HRESULT putBaseURL([in] const WCHAR * pBaseUrl);
+ HRESULT baseURL([in] const WCHAR * pBaseUrl);
[propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
- HRESULT getSecureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
+ HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
[propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
- HRESULT putSecureBaseURL([in] const WCHAR * secureBaseUrl);
-
- [propget, id(DISPID_SAX_XMLREADER_PARSE)]
+ HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
+
+ [id(DISPID_SAX_XMLREADER_PARSE)]
HRESULT parse( [in] VARIANT varInput);
- [propput, id(DISPID_SAX_XMLREADER_PARSE)]
+ [id(DISPID_SAX_XMLREADER_PARSEURL)]
HRESULT parseURL([in] const WCHAR * url);
}