[MSXML3]
authorChristoph von Wittich <christoph_vw@reactos.org>
Sat, 29 May 2010 09:02:25 +0000 (09:02 +0000)
committerChristoph von Wittich <christoph_vw@reactos.org>
Sat, 29 May 2010 09:02:25 +0000 (09:02 +0000)
sync to wine 1.2 RC2

svn path=/trunk/; revision=47398

reactos/dll/win32/msxml3/domdoc.c
reactos/dll/win32/msxml3/regsvr.c
reactos/include/psdk/msxml2.idl
reactos/include/psdk/msxml2did.h

index aae8a34..d72d20b 100644 (file)
@@ -2177,8 +2177,7 @@ xmldoc_SetSite( IObjectWithSite *iface, IUnknown *punk )
         return S_OK;
     }
 
-    if ( punk )
-        IUnknown_AddRef( punk );
+    IUnknown_AddRef( punk );
 
     if(This->site)
         IUnknown_Release( This->site );
index d9b47dd..415e5af 100644 (file)
@@ -515,8 +515,23 @@ static struct regsvr_coclass const coclass_list[] = {
         "Both",
         "Microsoft.FreeThreadedXMLDOM.1.0",
         "1.0"
+    },
+    {   &CLSID_FreeThreadedDOMDocument26,
+        "Free Threaded XML DOM Document 2.6",
+        NULL,
+        "msxml3.dll",
+        "Both",
+        "Microsoft.FreeThreadedXMLDOM.1.0",
+        "1.0"
+     },
+    {   &CLSID_FreeThreadedDOMDocument30,
+        "Free Threaded XML DOM Document 3.0",
+        NULL,
+        "msxml3.dll",
+        "Both",
+        "Microsoft.FreeThreadedDOMDocument.1.0",
+        "1.0"
      },
-
     {   &CLSID_XMLHTTPRequest,
        "XML HTTP Request",
        NULL,
@@ -548,6 +563,14 @@ static struct regsvr_coclass const coclass_list[] = {
        "Msxml2.XMLSchemaCache",
         "3.0"
     },
+    {   &CLSID_XMLSchemaCache26,
+    "XML Schema Cache 2.6",
+    NULL,
+    "msxml3.dll",
+    "Both",
+    "Msxml2.XMLSchemaCache",
+    "2.6"
+    },
     {   &CLSID_XMLSchemaCache30,
        "XML Schema Cache 3.0",
        NULL,
@@ -588,6 +611,22 @@ static struct regsvr_coclass const coclass_list[] = {
         "Msxml2.MXXMLWriter",
         "3.0"
     },
+    {   &CLSID_SAXAttributes,
+        "SAX Attribute",
+        NULL,
+        "msxml3.dll",
+        "Both",
+        "Msxml2.SAXAttributes",
+        NULL
+    },
+    {   &CLSID_SAXAttributes30,
+        "SAX Attribute 3.0",
+        NULL,
+        "msxml3.dll",
+        "Both",
+        "Msxml2.SAXAttributes",
+        "3.0"
+    },
     { NULL }                   /* list terminator */
 };
 
@@ -642,6 +681,16 @@ static struct progid const progid_list[] = {
        &CLSID_DOMFreeThreadedDocument,
        "Microsoft.FreeThreadedXMLDOM.1.0"
     },
+    {   "MSXML.FreeThreadedDOMDocument26",
+    "Free threaded XML DOM Document 2.6",
+    &CLSID_FreeThreadedDOMDocument26,
+    NULL
+    },
+    {   "MSXML.FreeThreadedDOMDocument30",
+    "Free threaded XML DOM Document 3.0",
+    &CLSID_FreeThreadedDOMDocument30,
+    NULL
+    },
     {   "Microsoft.XMLHTTP",
        "XML HTTP Request",
        &CLSID_XMLHTTPRequest,
@@ -672,6 +721,11 @@ static struct progid const progid_list[] = {
         &CLSID_XMLSchemaCache,
         "Msxml2.XMLSchemaCache.3.0"
     },
+    {   "Msxml2.XMLSchemaCache.2.6",
+        "XML Schema Cache 2.6",
+        &CLSID_XMLSchemaCache26,
+        "Msxml2.XMLSchemaCache.2.6"
+    },
     {   "Msxml2.XMLSchemaCache.3.0",
         "XML Schema Cache 3.0",
         &CLSID_XMLSchemaCache30,
@@ -697,7 +751,16 @@ static struct progid const progid_list[] = {
         &CLSID_MXXMLWriter30,
         NULL
     },
-
+    {   "Msxml2.SAXAttributes",
+        "SAX Attribute",
+        &CLSID_SAXAttributes,
+        NULL
+    },
+    {   "Msxml2.SAXAttributes.3.0",
+        "SAX Attribute 3.0",
+        &CLSID_SAXAttributes30,
+        NULL
+    },
     { NULL }                   /* list terminator */
 };
 
index 8991400..f2841a5 100644 (file)
@@ -85,6 +85,22 @@ interface IMXAttributes;
 interface IMXReaderControl;
 interface IMXWriter;
 
+interface IXMLDOMSchemaCollection2;
+interface ISchemaStringCollection;
+interface ISchemaItemCollection;
+interface ISchemaItem;
+interface ISchema;
+interface ISchemaParticle;
+interface ISchemaAttribute;
+interface ISchemaElement;
+interface ISchemaType;
+interface ISchemaComplexType;
+interface ISchemaAttributeGroup;
+interface ISchemaModelGroup;
+interface ISchemaAny;
+interface ISchemaIdentityConstraint;
+interface ISchemaNotation;
+
 
 cpp_quote("#define DOMDocument DOMDocument2")
 cpp_quote("#define CLSID_DOMDocument CLSID_DOMDocument2")
@@ -108,6 +124,134 @@ typedef enum tagDOMNodeType
 } DOMNodeType;
 cpp_quote("#endif   /* __WIDL_XMLDOM_H */")
 
+typedef enum _SOMITEMTYPE
+{
+    SOMITEM_SCHEMA                      = 0x1000,
+    SOMITEM_ATTRIBUTE                   = 0x1001,
+    SOMITEM_ATTRIBUTEGROUP              = 0x1002,
+    SOMITEM_NOTATION                    = 0x1003,
+    SOMITEM_IDENTITYCONSTRAINT          = 0x1100,
+    SOMITEM_KEY                         = 0x1101,
+    SOMITEM_KEYREF                      = 0x1102,
+    SOMITEM_UNIQUE                      = 0x1103,
+    SOMITEM_ANYTYPE                     = 0x2000,
+    SOMITEM_DATATYPE                    = 0x2100,
+    SOMITEM_DATATYPE_ANYTYPE            = 0x2101,
+    SOMITEM_DATATYPE_ANYURI             = 0x2102,
+    SOMITEM_DATATYPE_BASE64BINARY       = 0x2103,
+    SOMITEM_DATATYPE_BOOLEAN            = 0x2104,
+    SOMITEM_DATATYPE_BYTE               = 0x2105,
+    SOMITEM_DATATYPE_DATE               = 0x2106,
+    SOMITEM_DATATYPE_DATETIME           = 0x2107,
+    SOMITEM_DATATYPE_DAY                = 0x2108,
+    SOMITEM_DATATYPE_DECIMAL            = 0x2109,
+    SOMITEM_DATATYPE_DOUBLE             = 0x210A,
+    SOMITEM_DATATYPE_DURATION           = 0x210B,
+    SOMITEM_DATATYPE_ENTITIES           = 0x210C,
+    SOMITEM_DATATYPE_ENTITY             = 0x210D,
+    SOMITEM_DATATYPE_FLOAT              = 0x210E,
+    SOMITEM_DATATYPE_HEXBINARY          = 0x210F,
+    SOMITEM_DATATYPE_ID                 = 0x2110,
+    SOMITEM_DATATYPE_IDREF              = 0x2111,
+    SOMITEM_DATATYPE_IDREFS             = 0x2112,
+    SOMITEM_DATATYPE_INT                = 0x2113,
+    SOMITEM_DATATYPE_INTEGER            = 0x2114,
+    SOMITEM_DATATYPE_LANGUAGE           = 0x2115,
+    SOMITEM_DATATYPE_LONG               = 0x2116,
+    SOMITEM_DATATYPE_MONTH              = 0x2117,
+    SOMITEM_DATATYPE_MONTHDAY           = 0x2118,
+    SOMITEM_DATATYPE_NAME               = 0x2119,
+    SOMITEM_DATATYPE_NCNAME             = 0x211A,
+    SOMITEM_DATATYPE_NEGATIVEINTEGER    = 0x211B,
+    SOMITEM_DATATYPE_NMTOKEN            = 0x211C,
+    SOMITEM_DATATYPE_NMTOKENS           = 0x211D,
+    SOMITEM_DATATYPE_NONNEGATIVEINTEGER = 0x211E,
+    SOMITEM_DATATYPE_NONPOSITIVEINTEGER = 0x211F,
+    SOMITEM_DATATYPE_NORMALIZEDSTRING   = 0x2120,
+    SOMITEM_DATATYPE_NOTATION           = 0x2121,
+    SOMITEM_DATATYPE_POSITIVEINTEGER    = 0x2122,
+    SOMITEM_DATATYPE_QNAME              = 0x2123,
+    SOMITEM_DATATYPE_SHORT              = 0x2124,
+    SOMITEM_DATATYPE_STRING             = 0x2125,
+    SOMITEM_DATATYPE_TIME               = 0x2126,
+    SOMITEM_DATATYPE_TOKEN              = 0x2127,
+    SOMITEM_DATATYPE_UNSIGNEDBYTE       = 0x2128,
+    SOMITEM_DATATYPE_UNSIGNEDINT        = 0x2129,
+    SOMITEM_DATATYPE_UNSIGNEDLONG       = 0x212A,
+    SOMITEM_DATATYPE_UNSIGNEDSHORT      = 0x212B,
+    SOMITEM_DATATYPE_YEAR               = 0x212C,
+    SOMITEM_DATATYPE_YEARMONTH          = 0x212D,
+    SOMITEM_DATATYPE_ANYSIMPLETYPE      = 0x21FF,
+    SOMITEM_SIMPLETYPE                  = 0x2200,
+    SOMITEM_COMPLEXTYPE                 = 0x2400,
+    SOMITEM_PARTICLE                    = 0x4000,
+    SOMITEM_ANY                         = 0x4001,
+    SOMITEM_ANYATTRIBUTE                = 0x4002,
+    SOMITEM_ELEMENT                     = 0x4003,
+    SOMITEM_GROUP                       = 0x4100,
+    SOMITEM_ALL                         = 0x4101,
+    SOMITEM_CHOICE                      = 0x4102,
+    SOMITEM_SEQUENCE                    = 0x4103,
+    SOMITEM_EMPTYPARTICLE               = 0x4104,
+    SOMITEM_NULL                        = 0x0800,
+    SOMITEM_NULL_TYPE                   = 0x2800,
+    SOMITEM_NULL_ANY                    = 0x4801,
+    SOMITEM_NULL_ANYATTRIBUTE           = 0x4802,
+    SOMITEM_NULL_ELEMENT                = 0x4803,
+} SOMITEMTYPE;
+
+typedef enum _SCHEMAUSE
+{
+    SCHEMAUSE_OPTIONAL,
+    SCHEMAUSE_PROHIBITED,
+    SCHEMAUSE_REQUIRED,
+} SCHEMAUSE;
+
+typedef enum _SCHEMADERIVATIONMETHOD
+{
+    SCHEMADERIVATIONMETHOD_EMPTY        = 0x0000,
+    SCHEMADERIVATIONMETHOD_SUBSTITUTION = 0x0001,
+    SCHEMADERIVATIONMETHOD_EXTENSION    = 0x0002,
+    SCHEMADERIVATIONMETHOD_RESTRICTION  = 0x0004,
+    SCHEMADERIVATIONMETHOD_LIST         = 0x0008,
+    SCHEMADERIVATIONMETHOD_UNION        = 0x0010,
+    SCHEMADERIVATIONMETHOD_ALL          = 0x00FF,
+    SCHEMADERIVATIONMETHOD_NONE         = 0x0100,
+} SCHEMADERIVATIONMETHOD;
+
+typedef enum _SCHEMACONTENTTYPE
+{
+    SCHEMACONTENTTYPE_EMPTY,
+    SCHEMACONTENTTYPE_TEXTONLY,
+    SCHEMACONTENTTYPE_ELEMENTONLY,
+    SCHEMACONTENTTYPE_MIXED,
+} SCHEMACONTENTTYPE;
+
+typedef enum _SCHEMAPROCESSCONTENTS
+{
+    SCHEMAPROCESSCONTENTS_NONE,
+    SCHEMAPROCESSCONTENTS_SKIP,
+    SCHEMAPROCESSCONTENTS_LAX,
+    SCHEMAPROCESSCONTENTS_STRICT,
+} SCHEMAPROCESSCONTENTS;
+
+typedef enum _SCHEMAWHITESPACE
+{
+    SCHEMAWHITESPACE_NONE       = -1,
+    SCHEMAWHITESPACE_PRESERVE   =  0,
+    SCHEMAWHITESPACE_REPLACE    =  1,
+    SCHEMAWHITESPACE_COLLAPSE   =  2,
+} SCHEMAWHITESPACE;
+
+
+typedef enum _SCHEMATYPEVARIETY
+{
+    SCHEMATYPEVARIETY_NONE      = -1,
+    SCHEMATYPEVARIETY_ATOMIC    =  0,
+    SCHEMATYPEVARIETY_LIST      =  1,
+    SCHEMATYPEVARIETY_UNION     =  2,
+} SCHEMATYPEVARIETY;
+
 [
 local,
 object,
@@ -417,6 +561,35 @@ interface IXMLDOMSchemaCollection : IDispatch
     HRESULT _newEnum([retval, out] IUnknown **ppUnk);
 }
 
+[
+    local,
+    object,
+    uuid(50ea08b0-dd1b-4664-9a50-c2f40f4bd79a),
+]
+interface IXMLDOMSchemaCollection2 : IXMLDOMSchemaCollection
+{
+    [id(DISPID_SOM_VALIDATE)]
+    HRESULT validate();
+
+    [propput, id(DISPID_SOM_VALIDATEONLOAD)]
+    HRESULT validateOnLoad(
+        [in] VARIANT_BOOL validateOnLoad);
+
+    [propget, id(DISPID_SOM_VALIDATEONLOAD)]
+    HRESULT validateOnLoad(
+        [out,retval] VARIANT_BOOL* validateOnLoad);
+
+    [id(DISPID_SOM_GETSCHEMA)]
+    HRESULT getSchema(
+        [in] BSTR namespaceURI,
+        [out,retval] ISchema** schema);
+
+    [id(DISPID_SOM_GETDECLARATION)]
+    HRESULT getDeclaration(
+        [in] IXMLDOMNode* node,
+        [out,retval]ISchemaItem** item);
+};
+
 [
 local,
 object,
@@ -1106,6 +1279,15 @@ coclass FreeThreadedDOMDocument30
     [default, source] dispinterface XMLDOMDocumentEvents;
 }
 
+[
+    uuid(88d969c1-f192-11d4-a65f-0040963251e5),
+]
+coclass FreeThreadedDOMDocument40
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+};
+
 [
     uuid(373984c9-b845-449b-91e7-45ac83036ade)
 ]
@@ -1130,6 +1312,14 @@ coclass XMLSchemaCache30
     [default] interface IXMLDOMSchemaCollection;
 }
 
+[
+    uuid(88d969c2-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLSchemaCache40
+{
+    [default] interface IXMLDOMSchemaCollection2;
+};
+
 [
     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
 ]
@@ -1959,6 +2149,443 @@ interface IMXWriter :  IDispatch
     HRESULT flush();
 };
 
+[
+    local,
+    object,
+    uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaStringCollection : IDispatch
+{
+    [id(DISPID_VALUE), propget]
+    HRESULT item(
+        [in] long index,
+        [out,retval] BSTR* bstr);
+
+    [id(DISPID_SOM_LENGTH), propget]
+    HRESULT length(
+        [out,retval] long* length);
+
+    [id(DISPID_NEWENUM), hidden, restricted, propget]
+    HRESULT _newEnum(
+        [out,retval] IUnknown** ppunk);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b2-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaItemCollection : IDispatch
+{
+    [id(DISPID_VALUE), propget]
+    HRESULT item(
+        [in] long index,
+        [out,retval]ISchemaItem** item);
+
+    [id(DISPID_SOM_ITEMBYNAME)]
+    HRESULT itemByName(
+        [in] BSTR name,
+        [out,retval] ISchemaItem** item);
+
+    [id(DISPID_SOM_ITEMBYQNAME)]
+    HRESULT itemByQName(
+        [in] BSTR name,
+        [in] BSTR namespaceURI,
+        [out,retval] ISchemaItem** item);
+
+    [id(DISPID_SOM_LENGTH), propget]
+    HRESULT length(
+        [out,retval]long* length);
+
+    [id(DISPID_NEWENUM), hidden, restricted, propget]
+    HRESULT _newEnum(
+        [out,retval]IUnknown** ppunk);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b3-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaItem : IDispatch
+{
+    [id(DISPID_SOM_NAME), propget]
+    HRESULT name(
+        [out,retval] BSTR* name);
+
+    [id(DISPID_SOM_NAMESPACEURI), propget]
+    HRESULT namespaceURI(
+        [out,retval] BSTR* namespaceURI);
+
+    [id(DISPID_SOM_SCHEMA), propget]
+    HRESULT schema(
+        [out,retval] ISchema** schema);
+
+    [id(DISPID_SOM_ID), propget]
+    HRESULT id(
+        [out,retval] BSTR* id);
+
+    [id(DISPID_SOM_ITEMTYPE), propget]
+    HRESULT itemType(
+        [out,retval] SOMITEMTYPE* itemType);
+
+    [id(DISPID_SOM_UNHANDLEDATTRS), propget]
+    HRESULT unhandledAttributes(
+        [out,retval] IVBSAXAttributes** attributes);
+
+    [id(DISPID_SOM_WRITEANNOTATION)]
+    HRESULT writeAnnotation(
+        [in] IUnknown* annotationSink,
+        [out,retval] VARIANT_BOOL* isWritten);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b4-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchema : ISchemaItem
+{
+    [id(DISPID_SOM_TARGETNAMESPACE), propget]
+    HRESULT targetNamespace(
+        [out,retval] BSTR* targetNamespace);
+
+    [id(DISPID_SOM_VERSION), propget]
+    HRESULT version(
+        [out,retval] BSTR* version);
+
+    [id(DISPID_SOM_TYPES), propget]
+    HRESULT types(
+        [out,retval] ISchemaItemCollection** types);
+
+    [id(DISPID_SOM_ELEMENTS), propget]
+    HRESULT elements(
+        [out,retval] ISchemaItemCollection** elements);
+
+    [id(DISPID_SOM_ATTRIBUTES), propget]
+    HRESULT attributes(
+        [out,retval] ISchemaItemCollection** attributes);
+
+    [id(DISPID_SOM_ATTRIBUTEGROUPS), propget]
+    HRESULT attributeGroups(
+        [out,retval] ISchemaItemCollection** attributeGroups);
+
+    [id(DISPID_SOM_MODELGROUPS), propget]
+    HRESULT modelGroups(
+        [out,retval] ISchemaItemCollection** modelGroups);
+
+    [id(DISPID_SOM_NOTATIONS), propget]
+    HRESULT notations(
+        [out,retval] ISchemaItemCollection** notations);
+
+    [id(DISPID_SOM_SCHEMALOCATIONS), propget]
+    HRESULT schemaLocations(
+        [out,retval] ISchemaStringCollection** schemaLocations);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b5-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaParticle : ISchemaItem
+{
+    [id(DISPID_SOM_MINOCCURS), propget]
+    HRESULT minOccurs(
+        [out,retval] VARIANT* minOccurs);
+
+    [id(DISPID_SOM_MAXOCCURS), propget]
+    HRESULT maxOccurs(
+        [out,retval] VARIANT* maxOccurs);
+};
+
+[
+    object,
+    uuid(50ea08b6-dd1b-4664-9a50-c2f40f4bd79a),
+    dual,
+]
+interface ISchemaAttribute : ISchemaItem
+{
+    [id(DISPID_SOM_TYPE), propget]
+    HRESULT type(
+        [out,retval] ISchemaType** type);
+
+    [id(DISPID_SOM_SCOPE), propget]
+    HRESULT scope(
+        [out,retval] ISchemaComplexType** scope);
+
+    [id(DISPID_SOM_DEFAULTVALUE), propget]
+    HRESULT defaultValue(
+        [out,retval]BSTR* defaultValue);
+
+    [id(DISPID_SOM_FIXEDVALUE), propget]
+    HRESULT fixedValue(
+        [out,retval] BSTR* fixedValue);
+
+    [id(DISPID_SOM_USE), propget]
+    HRESULT use(
+        [out,retval] SCHEMAUSE* use);
+
+    [id(DISPID_SOM_ISREFERENCE), propget]
+    HRESULT isReference(
+        [out,retval] VARIANT_BOOL* reference);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b7-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaElement : ISchemaParticle
+{
+    [id(DISPID_SOM_TYPE), propget]
+    HRESULT type(
+        [out,retval] ISchemaType** type);
+
+    [id(DISPID_SOM_SCOPE), propget]
+    HRESULT scope(
+        [out,retval] ISchemaComplexType** scope);
+
+    [id(DISPID_SOM_DEFAULTVALUE), propget]
+    HRESULT defaultValue(
+        [out,retval] BSTR* defaultValue);
+
+    [id(DISPID_SOM_FIXEDVALUE), propget]
+    HRESULT fixedValue(
+        [out,retval] BSTR* fixedValue);
+
+    [id(DISPID_SOM_ISNILLABLE), propget]
+    HRESULT isNillable(
+        [out,retval] VARIANT_BOOL* nillable);
+
+    [id(DISPID_SOM_IDCONSTRAINTS), propget]
+    HRESULT identityConstraints(
+        [out,retval] ISchemaItemCollection** constraints);
+
+    [id(DISPID_SOM_SUBSTITUTIONGROUP), propget]
+    HRESULT substitutionGroup(
+        [out,retval] ISchemaElement** element);
+
+    [id(DISPID_SOM_EXCLUSIONS), propget]
+    HRESULT substitutionGroupExclusions(
+        [out,retval] SCHEMADERIVATIONMETHOD* exclusions);
+
+    [id(DISPID_SOM_DISALLOWED), propget]
+    HRESULT disallowedSubstitutions(
+        [out,retval] SCHEMADERIVATIONMETHOD* disallowed);
+
+    [id(DISPID_SOM_ISABSTRACT), propget]
+    HRESULT isAbstract(
+        [out,retval] VARIANT_BOOL* abstract);
+
+    [id(DISPID_SOM_ISREFERENCE), propget]
+    HRESULT isReference(
+        [out,retval] VARIANT_BOOL* reference);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b8-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaType : ISchemaItem
+{
+    [id(DISPID_SOM_BASETYPES), propget]
+    HRESULT baseTypes(
+        [out,retval] ISchemaItemCollection** baseTypes);
+
+    [id(DISPID_SOM_FINAL), propget]
+    HRESULT final(
+        [out,retval] SCHEMADERIVATIONMETHOD* final);
+
+    [id(DISPID_SOM_VARIETY), propget]
+    HRESULT variety(
+        [out,retval] SCHEMATYPEVARIETY* variety);
+
+    [id(DISPID_SOM_DERIVEDBY), propget]
+    HRESULT derivedBy(
+        [out,retval] SCHEMADERIVATIONMETHOD* derivedBy);
+
+    [id(DISPID_SOM_ISVALID)]
+    HRESULT isValid(
+        [in] BSTR data,
+        [out,retval] VARIANT_BOOL* valid);
+
+    [id(DISPID_SOM_MINEXCLUSIVE), propget]
+    HRESULT minExclusive(
+        [out,retval]BSTR* minExclusive);
+
+    [id(DISPID_SOM_MININCLUSIVE), propget]
+    HRESULT minInclusive(
+        [out,retval] BSTR* minInclusive);
+
+    [id(DISPID_SOM_MAXEXCLUSIVE), propget]
+    HRESULT maxExclusive(
+        [out,retval] BSTR* maxExclusive);
+
+    [id(DISPID_SOM_MAXINCLUSIVE), propget]
+    HRESULT maxInclusive(
+        [out,retval] BSTR* maxInclusive);
+
+    [id(DISPID_SOM_TOTALDIGITS), propget]
+    HRESULT totalDigits(
+        [out,retval] VARIANT* totalDigits);
+
+    [id(DISPID_SOM_FRACTIONDIGITS), propget]
+    HRESULT fractionDigits(
+        [out,retval] VARIANT* fractionDigits);
+
+    [id(DISPID_SOM_LENGTH), propget]
+    HRESULT length(
+        [out,retval] VARIANT* length);
+
+    [id(DISPID_SOM_MINLENGTH), propget]
+    HRESULT minLength(
+        [out,retval]VARIANT* minLength);
+
+    [id(DISPID_SOM_MAXLENGTH), propget]
+    HRESULT maxLength(
+        [out,retval]VARIANT* maxLength);
+
+    [id(DISPID_SOM_ENUMERATION), propget]
+    HRESULT enumeration(
+        [out,retval] ISchemaStringCollection** enumeration);
+
+    [id(DISPID_SOM_WHITESPACE), propget]
+    HRESULT whitespace(
+        [out,retval]SCHEMAWHITESPACE* whitespace);
+
+    [id(DISPID_SOM_PATTERNS), propget]
+    HRESULT patterns(
+        [out,retval] ISchemaStringCollection** patterns);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08b9-dd1b-4664-9a50-c2f40f4bd79a),
+    dual,
+]
+interface ISchemaComplexType : ISchemaType
+{
+    [id(DISPID_SOM_ISABSTRACT), propget]
+    HRESULT isAbstract(
+        [out,retval] VARIANT_BOOL* abstract);
+
+    [id(DISPID_SOM_ANYATTRIBUTE), propget]
+    HRESULT anyAttribute(
+        [out,retval] ISchemaAny** anyAttribute);
+
+    [id(DISPID_SOM_ATTRIBUTES), propget]
+    HRESULT attributes(
+        [out,retval] ISchemaItemCollection** attributes);
+
+    [id(DISPID_SOM_CONTENTTYPE), propget]
+    HRESULT contentType(
+        [out,retval] SCHEMACONTENTTYPE* contentType);
+
+    [id(DISPID_SOM_CONTENTMODEL), propget]
+    HRESULT contentModel(
+        [out,retval] ISchemaModelGroup** contentModel);
+
+    [id(DISPID_SOM_PROHIBITED), propget]
+    HRESULT prohibitedSubstitutions(
+        [out,retval] SCHEMADERIVATIONMETHOD* prohibited);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08ba-dd1b-4664-9a50-c2f40f4bd79a),
+    dual,
+]
+interface ISchemaAttributeGroup : ISchemaItem
+{
+    [id(DISPID_SOM_ANYATTRIBUTE), propget]
+    HRESULT anyAttribute(
+        [out,retval] ISchemaAny** anyAttribute);
+
+    [id(DISPID_SOM_ATTRIBUTES), propget]
+        HRESULT attributes(
+            [out,retval] ISchemaItemCollection** attributes);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08bb-dd1b-4664-9a50-c2f40f4bd79a),
+    dual,
+]
+interface ISchemaModelGroup : ISchemaParticle
+{
+    [id(DISPID_SOM_PARTICLES), propget]
+    HRESULT particles(
+        [out,retval] ISchemaItemCollection** particles);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaAny : ISchemaParticle
+{
+    [id(DISPID_SOM_NAMESPACES), propget]
+    HRESULT namespaces(
+        [out,retval] ISchemaStringCollection** namespaces);
+
+    [id(DISPID_SOM_PROCESSCONTENTS), propget]
+    HRESULT processContents(
+        [out,retval] SCHEMAPROCESSCONTENTS* processContents);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08bd-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaIdentityConstraint : ISchemaItem
+{
+    [id(DISPID_SOM_SELECTOR), propget]
+    HRESULT selector(
+        [out,retval] BSTR* selector);
+
+    [id(DISPID_SOM_FIELDS), propget]
+        HRESULT fields(
+            [out,retval] ISchemaStringCollection** fields);
+
+    [id(DISPID_SOM_REFERENCEDKEY), propget]
+    HRESULT referencedKey(
+        [out,retval] ISchemaIdentityConstraint** key);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08be-dd1b-4664-9a50-c2f40f4bd79a),
+    dual
+]
+interface ISchemaNotation : ISchemaItem
+{
+    [id(DISPID_SOM_SYSTEMIDENTIFIER), propget]
+    HRESULT systemIdentifier(
+        [out,retval] BSTR* uri);
+
+    [id(DISPID_SOM_PUBLICIDENTIFIER), propget]
+    HRESULT publicIdentifier(
+        [out,retval] BSTR* uri);
+};
+
+
 [
     uuid(079aa557-4a18-424a-8eee-e39f0a8d41b9)
 ]
@@ -2028,6 +2655,26 @@ coclass MXXMLWriter30
     interface IVBSAXLexicalHandler;
 };
 
+[
+    uuid(88d969c8-f192-11d4-a65f-0040963251e5),
+]
+coclass MXXMLWriter40
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+};
+
 [
     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
 ]
@@ -2048,5 +2695,15 @@ coclass SAXAttributes30
     interface ISAXAttributes;
 };
 
+[
+    uuid(88d969ca-f192-11d4-a65f-0040963251e5),
+]
+coclass SAXAttributes40
+{
+    [default] interface IMXAttributes;
+    interface IVBSAXAttributes;
+    interface ISAXAttributes;
+};
+
 
 } /* Library MSXML */
index f2adaaf..d7489d0 100644 (file)
 #define DISPID_MX_READER_CONTROL_RESUME                 0x00000577
 #define DISPID_MX_READER_CONTROL_SUSPEND                0x00000578
 
+#define DISPID_MX_SCHEMADECLHANDLER                     0x0000057a
+#define DISPID_MX_SCHEMADECLHANDLER_SCHEMAELEMENTDECL   0x0000057b
+
+#define DISPID_MX_NSMGR                                 0x0000057d
+#define DISPID_MX_NSMGR_ALLOWOVERRIDE                   0x0000057e
+#define DISPID_MX_NSMGR_RESET                           0x0000057f
+#define DISPID_MX_NSMGR_PUSHCONTEXT                     0x00000580
+#define DISPID_MX_NSMGR_PUSHNODECONTEXT                 0x00000581
+#define DISPID_MX_NSMGR_POPCONTEXT                      0x00000582
+#define DISPID_MX_NSMGR_DECLAREPREFIX                   0x00000583
+#define DISPID_MX_NSMGR_GETDECLAREDPREFIXES             0x00000584
+#define DISPID_MX_NSMGR_GETPREFIXES                     0x00000585
+#define DISPID_MX_NSMGR_GETURI                          0x00000586
+#define DISPID_MX_NSMGR_GETURIFROMNODE                  0x00000587
+#define DISPID_MX_NSMGR_LENGTH                          0x00000588
+
+#define DISPID_SOM_VALIDATE                             0x0000058b
+#define DISPID_SOM_VALIDATEONLOAD                       0x0000058c
+#define DISPID_SOM_GETSCHEMA                            0x0000058d
+#define DISPID_SOM_GETDECLARATION                       0x0000058e
+#define DISPID_SOM_ITEMBYNAME                           0x0000058f
+#define DISPID_SOM_ITEMBYQNAME                          0x00000590
+#define DISPID_SOM_ANYATTRIBUTE                         0x00000591
+#define DISPID_SOM_ATTRIBUTEGROUPS                      0x00000592
+#define DISPID_SOM_ATTRIBUTES                           0x00000593
+#define DISPID_SOM_BASETYPES                            0x00000594
+#define DISPID_SOM_CONTENTMODEL                         0x00000595
+#define DISPID_SOM_CONTENTTYPE                          0x00000596
+#define DISPID_SOM_DEFAULTVALUE                         0x00000597
+#define DISPID_SOM_DERIVEDBY                            0x00000598
+#define DISPID_SOM_DISALLOWED                           0x00000599
+#define DISPID_SOM_ELEMENTS                             0x0000059a
+#define DISPID_SOM_ENUMERATION                          0x0000059b
+#define DISPID_SOM_FIELDS                               0x0000059c
+#define DISPID_SOM_FINAL                                0x0000059d
+#define DISPID_SOM_FIXEDVALUE                           0x0000059e
+#define DISPID_SOM_FRACTIONDIGITS                       0x0000059f
+#define DISPID_SOM_ID                                   0x000005a0
+#define DISPID_SOM_IDCONSTRAINTS                        0x000005a1
+#define DISPID_SOM_ISABSTRACT                           0x000005a2
+#define DISPID_SOM_ISNILLABLE                           0x000005a3
+#define DISPID_SOM_ISREFERENCE                          0x000005a4
+#define DISPID_SOM_ISVALID                              0x000005a5
+#define DISPID_SOM_ITEMTYPE                             0x000005a6
+#define DISPID_SOM_LENGTH                               0x000005a7
+#define DISPID_SOM_MAXEXCLUSIVE                         0x000005a8
+#define DISPID_SOM_MAXINCLUSIVE                         0x000005a9
+#define DISPID_SOM_MAXLENGTH                            0x000005aa
+#define DISPID_SOM_MAXOCCURS                            0x000005ab
+#define DISPID_SOM_MINEXCLUSIVE                         0x000005ac
+#define DISPID_SOM_MININCLUSIVE                         0x000005ad
+#define DISPID_SOM_MINLENGTH                            0x000005ae
+#define DISPID_SOM_MINOCCURS                            0x000005af
+#define DISPID_SOM_MODELGROUPS                          0x000005b0
+#define DISPID_SOM_NAME                                 0x000005b1
+#define DISPID_SOM_NAMESPACES                           0x000005b2
+#define DISPID_SOM_NAMESPACEURI                         0x000005b3
+#define DISPID_SOM_NOTATIONS                            0x000005b4
+#define DISPID_SOM_PARTICLES                            0x000005b5
+#define DISPID_SOM_PATTERNS                             0x000005b6
+#define DISPID_SOM_PROCESSCONTENTS                      0x000005b7
+#define DISPID_SOM_PROHIBITED                           0x000005b8
+#define DISPID_SOM_PUBLICIDENTIFIER                     0x000005b9
+#define DISPID_SOM_REFERENCEDKEY                        0x000005ba
+#define DISPID_SOM_SCHEMA                               0x000005bb
+#define DISPID_SOM_SCHEMALOCATIONS                      0x000005bc
+#define DISPID_SOM_SCOPE                                0x000005bd
+#define DISPID_SOM_SELECTOR                             0x000005be
+#define DISPID_SOM_SUBSTITUTIONGROUP                    0x000005bf
+#define DISPID_SOM_EXCLUSIONS                           0x000005c0
+#define DISPID_SOM_SYSTEMIDENTIFIER                     0x000005c1
+#define DISPID_SOM_TARGETNAMESPACE                      0x000005c2
+#define DISPID_SOM_TOTALDIGITS                          0x000005c3
+#define DISPID_SOM_TYPE                                 0x000005c4
+#define DISPID_SOM_TYPES                                0x000005c5
+#define DISPID_SOM_UNHANDLEDATTRS                       0x000005c6
+#define DISPID_SOM_USE                                  0x000005c7
+#define DISPID_SOM_VARIETY                              0x000005c8
+#define DISPID_SOM_VERSION                              0x000005c9
+#define DISPID_SOM_WHITESPACE                           0x000005ca
+#define DISPID_SOM_WRITEANNOTATION                      0x000005cb
+
 
 #endif /* __MSXML2DID_H__ */