Commit f5e9a1ea authored by James Hawkins's avatar James Hawkins Committed by Alexandre Julliard

msxml3: Add initial implementation of IXMLDocument.

parent 74f18d96
...@@ -25,6 +25,7 @@ C_SRCS = \ ...@@ -25,6 +25,7 @@ C_SRCS = \
schema.c \ schema.c \
text.c \ text.c \
uuid.c \ uuid.c \
xmldoc.c \
xmlelem.c xmlelem.c
RC_SRCS = version.rc RC_SRCS = version.rc
......
...@@ -134,6 +134,7 @@ static const struct IClassFactoryVtbl xmlcf_vtbl = ...@@ -134,6 +134,7 @@ static const struct IClassFactoryVtbl xmlcf_vtbl =
static xmlcf domdoccf = { &xmlcf_vtbl, DOMDocument_create }; static xmlcf domdoccf = { &xmlcf_vtbl, DOMDocument_create };
static xmlcf schemacf = { &xmlcf_vtbl, SchemaCache_create }; static xmlcf schemacf = { &xmlcf_vtbl, SchemaCache_create };
static xmlcf xmldoccf = { &xmlcf_vtbl, XMLDocument_create };
/****************************************************************** /******************************************************************
* DllGetClassObject (MSXML3.@) * DllGetClassObject (MSXML3.@)
...@@ -147,11 +148,18 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv ) ...@@ -147,11 +148,18 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv )
if( IsEqualCLSID( rclsid, &CLSID_DOMDocument ) || /* Version indep. v 2.x */ if( IsEqualCLSID( rclsid, &CLSID_DOMDocument ) || /* Version indep. v 2.x */
IsEqualCLSID( rclsid, &CLSID_DOMDocument2 ) || /* Version indep. v 3.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument2 ) || /* Version indep. v 3.0 */
IsEqualCLSID( rclsid, &CLSID_DOMDocument30 ) ) /* Version dep. v 3.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument30 ) ) /* Version dep. v 3.0 */
{
cf = (IClassFactory*) &domdoccf.lpVtbl; cf = (IClassFactory*) &domdoccf.lpVtbl;
}
else if( IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache ) || else if( IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache ) ||
IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache30 ) ) IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache30 ) )
{
cf = (IClassFactory*) &schemacf.lpVtbl; cf = (IClassFactory*) &schemacf.lpVtbl;
}
else if( IsEqualCLSID( rclsid, &CLSID_XMLDocument ) )
{
cf = (IClassFactory*) &xmldoccf.lpVtbl;
}
if ( !cf ) if ( !cf )
return CLASS_E_CLASSNOTAVAILABLE; return CLASS_E_CLASSNOTAVAILABLE;
......
...@@ -63,6 +63,7 @@ extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, B ...@@ -63,6 +63,7 @@ extern IXMLDOMParseError *create_parseError( LONG code, BSTR url, BSTR reason, B
LONG line, LONG linepos, LONG filepos ); LONG line, LONG linepos, LONG filepos );
extern HRESULT DOMDocument_create( IUnknown *pUnkOuter, LPVOID *ppObj ); extern HRESULT DOMDocument_create( IUnknown *pUnkOuter, LPVOID *ppObj );
extern HRESULT SchemaCache_create( IUnknown *pUnkOuter, LPVOID *ppObj ); extern HRESULT SchemaCache_create( IUnknown *pUnkOuter, LPVOID *ppObj );
extern HRESULT XMLDocument_create( IUnknown *pUnkOuter, LPVOID *ppObj );
extern HRESULT XMLElement_create( IUnknown *pUnkOuter, xmlNodePtr node, LPVOID *ppObj ); extern HRESULT XMLElement_create( IUnknown *pUnkOuter, xmlNodePtr node, LPVOID *ppObj );
extern HRESULT XMLElementCollection_create( IUnknown *pUnkOuter, xmlNodePtr node, LPVOID *ppObj ); extern HRESULT XMLElementCollection_create( IUnknown *pUnkOuter, xmlNodePtr node, LPVOID *ppObj );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment