/****************************************************************** * DllGetClassObject (MSXML3.@) */ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv ) { IClassFactory *cf = NULL; TRACE("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv ); if( IsEqualCLSID( rclsid, &CLSID_DOMDocument ) || /* Version indep. v 2.x */ IsEqualCLSID( rclsid, &CLSID_DOMDocument2 ) || /* Version indep. v 3.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument30 )|| /* Version dep. v 3.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument40 )|| /* Version dep. v 4.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument60 )) /* Version dep. v 6.0 */ { return DOMClassFactory_Create(rclsid, riid, ppv, DOMDocument_create); } else if( IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache30 ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache40 ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache60 )) { cf = (IClassFactory*) &schemacf.lpVtbl; } else if( IsEqualCLSID( rclsid, &CLSID_XMLDocument ) ) { cf = (IClassFactory*) &xmldoccf.lpVtbl; } else if( IsEqualCLSID( rclsid, &CLSID_DOMFreeThreadedDocument ) || /* Version indep. v 2.x */ IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument30 ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument40 ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument60 )) { return DOMClassFactory_Create(rclsid, riid, ppv, DOMDocument_create); } else if( IsEqualCLSID( rclsid, &CLSID_SAXXMLReader) || IsEqualCLSID( rclsid, &CLSID_SAXXMLReader30 ) || IsEqualCLSID( rclsid, &CLSID_SAXXMLReader40 ) || IsEqualCLSID( rclsid, &CLSID_SAXXMLReader60 )) { cf = (IClassFactory*) &saxreadcf.lpVtbl; } else if( IsEqualCLSID( rclsid, &CLSID_XMLHTTPRequest)) { cf = (IClassFactory*) &httpreqcf.lpVtbl; } if ( !cf ) return CLASS_E_CLASSNOTAVAILABLE; return IClassFactory_QueryInterface( cf, riid, ppv ); }
/****************************************************************** * DllGetClassObject (MSXML3.@) */ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID riid, void **ppv ) { IClassFactory *cf = NULL; TRACE("%s %s %p\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv ); if( IsEqualCLSID( rclsid, &CLSID_DOMDocument ) || /* Version indep. v 2.x */ IsEqualCLSID( rclsid, &CLSID_DOMDocument2 ) || /* Version indep. v 3.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument26 )|| /* Version dep. v 2.6 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument30 )|| /* Version dep. v 3.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument40 )|| /* Version dep. v 4.0 */ IsEqualCLSID( rclsid, &CLSID_DOMDocument60 )) /* Version dep. v 6.0 */ { return DOMClassFactory_Create(rclsid, riid, ppv, DOMDocument_create); } else if( IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache26 ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache30 ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache40 ) || IsEqualCLSID( rclsid, &CLSID_XMLSchemaCache60 )) { return DOMClassFactory_Create(rclsid, riid, ppv, SchemaCache_create); } else if( IsEqualCLSID( rclsid, &CLSID_XMLDocument ) ) { cf = &xmldoccf.IClassFactory_iface; } else if( IsEqualCLSID( rclsid, &CLSID_DOMFreeThreadedDocument ) || /* Version indep. v 2.x */ IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument26 ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument30 ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument40 ) || IsEqualCLSID( rclsid, &CLSID_FreeThreadedDOMDocument60 )) { return DOMClassFactory_Create(rclsid, riid, ppv, DOMDocument_create); } else if( IsEqualCLSID( rclsid, &CLSID_SAXXMLReader) || IsEqualCLSID( rclsid, &CLSID_SAXXMLReader30 ) || IsEqualCLSID( rclsid, &CLSID_SAXXMLReader40 ) || IsEqualCLSID( rclsid, &CLSID_SAXXMLReader60 )) { cf = &saxreadcf.IClassFactory_iface; } else if( IsEqualCLSID( rclsid, &CLSID_XMLHTTPRequest ) || IsEqualCLSID( rclsid, &CLSID_XMLHTTP) || IsEqualCLSID( rclsid, &CLSID_XMLHTTP26 ) || IsEqualCLSID( rclsid, &CLSID_XMLHTTP30 ) || IsEqualCLSID( rclsid, &CLSID_XMLHTTP40 ) || IsEqualCLSID( rclsid, &CLSID_XMLHTTP60 )) { cf = &httpreqcf.IClassFactory_iface; } else if( IsEqualCLSID( rclsid, &CLSID_XSLTemplate ) || IsEqualCLSID( rclsid, &CLSID_XSLTemplate26 ) || IsEqualCLSID( rclsid, &CLSID_XSLTemplate30 ) || IsEqualCLSID( rclsid, &CLSID_XSLTemplate40 ) || IsEqualCLSID( rclsid, &CLSID_XSLTemplate60 )) { cf = &xsltemplatecf.IClassFactory_iface; } else if( IsEqualCLSID( rclsid, &CLSID_MXXMLWriter ) || IsEqualCLSID( rclsid, &CLSID_MXXMLWriter30 ) || IsEqualCLSID( rclsid, &CLSID_MXXMLWriter40 ) || IsEqualCLSID( rclsid, &CLSID_MXXMLWriter60 ) ) { return DOMClassFactory_Create(rclsid, riid, ppv, MXWriter_create); } else if( IsEqualCLSID( rclsid, &CLSID_MXNamespaceManager ) || IsEqualCLSID( rclsid, &CLSID_MXNamespaceManager40 ) || IsEqualCLSID( rclsid, &CLSID_MXNamespaceManager60 ) ) { cf = &mxnsmanagercf.IClassFactory_iface; } if ( !cf ) return CLASS_E_CLASSNOTAVAILABLE; return IClassFactory_QueryInterface( cf, riid, ppv ); }