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?re... ============================================================================== --- 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/queryresul... ============================================================================== --- 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?rev... ============================================================================== --- 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); }