diff --git a/dlls/msxml3/factory.c b/dlls/msxml3/factory.c index 45ba3680c0f..af94d5cbcf1 100644 --- a/dlls/msxml3/factory.c +++ b/dlls/msxml3/factory.c @@ -167,7 +167,8 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv ) cf = (IClassFactory*) &domdoccf.lpVtbl; } else if( IsEqualCLSID( rclsid, &CLSID_SAXXMLReader) || - IsEqualCLSID( rclsid, &CLSID_SAXXMLReader30 )) + IsEqualCLSID( rclsid, &CLSID_SAXXMLReader30 ) || + IsEqualCLSID( rclsid, &CLSID_SAXXMLReader40 )) { cf = (IClassFactory*) &saxreadcf.lpVtbl; } diff --git a/dlls/msxml4/regsvr.c b/dlls/msxml4/regsvr.c index d5180c30e21..b3088f14386 100644 --- a/dlls/msxml4/regsvr.c +++ b/dlls/msxml4/regsvr.c @@ -345,6 +345,14 @@ static struct regsvr_coclass const coclass_list[] = { "Msxml2.DOMDocument", "4.0" }, + { &CLSID_SAXXMLReader40, + "SAX XML Reader 4.0", + NULL, + "msxml4.dll", + "Both", + "Msxml2.SAXXMLReader", + "4.0" + }, { NULL } /* list terminator */ }; @@ -357,6 +365,11 @@ static struct progid const progid_list[] = { &CLSID_DOMDocument40, NULL }, + { "Msxml2.SAXXMLReader.4.0", + "SAX XML Reader 4.0", + &CLSID_SAXXMLReader40, + NULL + }, { NULL } /* list terminator */ }; diff --git a/include/msxml2.idl b/include/msxml2.idl index b6303c9f001..89914004955 100644 --- a/include/msxml2.idl +++ b/include/msxml2.idl @@ -1979,6 +1979,15 @@ coclass SAXXMLReader30 interface IMXReaderControl; }; +[ + uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f) +] +coclass SAXXMLReader40 +{ + [default] interface IVBSAXXMLReader; + interface ISAXXMLReader; +}; + [ uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020) ]