- Update "slightly less than all" IDLs to Wine-1.3.9. (Except for shlobj, shobjidl...
authorAleksey Bragin <aleksey@reactos.org>
Mon, 20 Dec 2010 11:56:24 +0000 (11:56 +0000)
committerAleksey Bragin <aleksey@reactos.org>
Mon, 20 Dec 2010 11:56:24 +0000 (11:56 +0000)
svn path=/trunk/; revision=50070

21 files changed:
reactos/include/psdk/control.idl
reactos/include/psdk/exdisp.idl
reactos/include/psdk/exdispid.h
reactos/include/psdk/mscoree.idl
reactos/include/psdk/mshtmdid.h
reactos/include/psdk/mshtml.idl
reactos/include/psdk/mstask.idl
reactos/include/psdk/msxml2.idl
reactos/include/psdk/msxml2did.h
reactos/include/psdk/msxml6.idl [new file with mode: 0644]
reactos/include/psdk/msxml6did.h [new file with mode: 0644]
reactos/include/psdk/objidl.idl
reactos/include/psdk/oledb.idl
reactos/include/psdk/propkeydef.h [new file with mode: 0644]
reactos/include/psdk/propsys.idl
reactos/include/psdk/psdk.rbuild
reactos/include/psdk/urlmon.idl
reactos/include/psdk/wbemcli.idl
reactos/include/psdk/wincodec.idl
reactos/include/psdk/winsxs.idl [new file with mode: 0644]
reactos/include/psdk/wuapi.idl

index 84a4f88..7d1c83b 100644 (file)
@@ -244,21 +244,3 @@ interface IMediaPosition : IDispatch
     HRESULT CanSeekForward( [out] LONG *pCanSeekForward );
     HRESULT CanSeekBackward( [out] LONG *pCanSeekBackward );
 }
-
-/*****************************************************************************
- * IDeferredCommand interface
- */
-[
-    object,
-    uuid(56a868b8-0ad4-11ce-b03a-0020af0ba770),
-    pointer_default(unique)
-]
-interface IDeferredCommand : IUnknown
-{
-    HRESULT Cancel( void);
-    HRESULT Confidence([out] LONG *pConfidence);
-    HRESULT Postpone([in] REFTIME newtime);
-    HRESULT GetHResult([out] HRESULT *phrResult);
-}
-
index 808663e..54dd1df 100644 (file)
@@ -409,7 +409,9 @@ dispinterface DWebBrowserEvents2
     void SetSecureLockIcon([in] long SecureLockIcon);
 
     [id(DISPID_FILEDOWNLOAD)]
-    void FileDownload([in, out] VARIANT_BOOL* Cancel);
+    void FileDownload(
+            [in] VARIANT_BOOL ActiveDocument,
+            [in, out] VARIANT_BOOL *Cancel);
 
     [id(DISPID_NAVIGATEERROR)]
     void NavigateError(
@@ -525,7 +527,8 @@ enum ShellWindowTypeConstants {
     SWC_EXPLORER = 0,
     SWC_BROWSER  = 1,
     SWC_3RDPARTY = 2,
-    SWC_CALLBACK = 4
+    SWC_CALLBACK = 4,
+    SWC_DESKTOP  = 8
 } ShellWindowTypeConstants;
 
 typedef
@@ -657,11 +660,70 @@ interface IShellUIHelper : IDispatch {
             [out, retval] VARIANT *pvarOut);
 }
 
+[
+    uuid(a7fe6eda-1932-4281-b881-87b31b8bc52c),
+    oleautomation,
+    dual
+]
+interface IShellUIHelper2 : IShellUIHelper {
+    [id(DISPID_ADDSEARCHPROVIDER)]
+    HRESULT AddSearchProvider([in] BSTR URL);
+
+    [id(DISPID_RUNONCESHOWN)]
+    HRESULT RunOnceShown();
+
+    [id(DISPID_SKIPRUNONCE)]
+    HRESULT SkipRunOnce();
+
+    [id(DISPID_CUSTOMIZESETTINGS)] HRESULT CustomizeSettings(
+        [in] VARIANT_BOOL fSQM,
+        [in] VARIANT_BOOL fPhishing,
+        [in] BSTR bstrLocale);
+
+    [id(DISPID_SQMENABLED)]
+    HRESULT SqmEnabled([out, retval] VARIANT_BOOL *pfEnabled);
+
+    [id(DISPID_PHISHINGENABLED)]
+    HRESULT PhishingEnabled([out, retval] VARIANT_BOOL *pfEnabled);
+
+    [id(DISPID_BRANDIMAGEURI)]
+    HRESULT BrandImageUri([out, retval] BSTR *pbstrUri);
+
+    [id(DISPID_SKIPTABSWELCOME)]
+    HRESULT SkipTabsWelcome();
+
+    [id(DISPID_DIAGNOSECONNECTION)]
+    HRESULT DiagnoseConnection();
+
+    [id(DISPID_CUSTOMIZECLEARTYPE)]
+    HRESULT CustomizeClearType([in] VARIANT_BOOL fSet);
+
+    [id(DISPID_ISSEARCHPROVIDERINSTALLED)]
+    HRESULT IsSearchProviderInstalled(
+        [in] BSTR URL,
+        [out, retval] DWORD *pdwResult);
+
+    [id(DISPID_ISSEARCHMIGRATED)]
+    HRESULT IsSearchMigrated([out, retval] VARIANT_BOOL *pfMigrated);
+
+    [id(DISPID_DEFAULTSEARCHPROVIDER)]
+    HRESULT DefaultSearchProvider([out, retval] BSTR *pbstrName);
+
+    [id(DISPID_RUNONCEREQUIREDSETTINGSCOMPLETE)]
+    HRESULT RunOnceRequiredSettingsComplete([in] VARIANT_BOOL fComplete);
+
+    [id(DISPID_RUNONCEHASSHOWN)]
+    HRESULT RunOnceHasShown([out, retval] VARIANT_BOOL *pfShown);
+
+    [id(DISPID_SEARCHGUIDEURL)]
+    HRESULT SearchGuideUrl([out, retval] BSTR *pbstrUrl);
+}
+
 [
     uuid(64ab4bb7-111e-11d1-8f79-00c04fc2fbe1)
 ]
 coclass ShellUIHelper {
-    [default] interface IShellUIHelper;
+    [default] interface IShellUIHelper2;
 }
 
 [
@@ -789,7 +851,8 @@ interface IScriptErrorList : IDispatch {
 
 [
     uuid(efd01300-160f-11d2-bb2e-00805ff7efca),
-    hidden
+    hidden,
+    noncreatable
 ]
 coclass CScriptErrorList {
     [default] interface IScriptErrorList;
index 232cee6..012f704 100644 (file)
 #define DISPID_AUTOSCAN              11
 #define DISPID_AUTOCOMPLETEATTACH    12
 #define DISPID_SHOWBROWSERUI         13
-#define DISPID_SHELLUIHELPERLAST     13
+#define DISPID_ADDSEARCHPROVIDER     14
+#define DISPID_RUNONCESHOWN          15
+#define DISPID_SKIPRUNONCE           16
+#define DISPID_CUSTOMIZESETTINGS     17
+#define DISPID_SQMENABLED            18
+#define DISPID_PHISHINGENABLED       19
+#define DISPID_BRANDIMAGEURI         20
+#define DISPID_SKIPTABSWELCOME       21
+#define DISPID_DIAGNOSECONNECTION    22
+#define DISPID_CUSTOMIZECLEARTYPE    23
+#define DISPID_ISSEARCHPROVIDERINSTALLED  24
+#define DISPID_ISSEARCHMIGRATED      25
+#define DISPID_DEFAULTSEARCHPROVIDER 26
+#define DISPID_RUNONCEREQUIREDSETTINGSCOMPLETE  27
+#define DISPID_RUNONCEHASSHOWN       28
+#define DISPID_SEARCHGUIDEURL        29
+#define DISPID_ADDSERVICE            30
+#define DISPID_ISSERVICEINSTALLED    31
+#define DISPID_ADDTOFAVORITESBAR     32
+#define DISPID_BUILDNEWTABPAGE       33
+#define DISPID_SETRECENTLYCLOSEDVISIBLE   34
+#define DISPID_SETACTIVITIESVISIBLE       35
+#define DISPID_CONTENTDISCOVERYRESET      36
+#define DISPID_INPRIVATEFILTERINGENABLED  37
+#define DISPID_SUGGESTEDSITESENABLED      38
+#define DISPID_ENABLESUGGESTEDSITES       39
+#define DISPID_NAVIGATETOSUGGESTEDSITES   40
+#define DISPID_SHOWTABSHELP               41
+#define DISPID_SHOWINPRIVATEHELP          42
+#define DISPID_SHELLUIHELPERLAST          43
 
 #define DISPID_ADVANCEERROR            10
 #define DISPID_RETREATERROR            11
index 19749fb..f8698cb 100644 (file)
@@ -36,6 +36,18 @@ cpp_quote("HRESULT     WINAPI LockClrVersion(FLockClrVersionCallback,FLockClrVer
 
 typedef void* HDOMAINENUM;
 
+typedef enum RUNTIME_INFO_FLAGS {
+    RUNTIME_INFO_UPGRADE_VERSION = 0x1,
+    RUNTIME_INFO_REQUEST_IA64 = 0x2,
+    RUNTIME_INFO_REQUEST_AMD64 = 0x4,
+    RUNTIME_INFO_REQUEST_X86 = 0x8,
+    RUNTIME_INFO_DONT_RETURN_DIRECTORY = 0x10,
+    RUNTIME_INFO_DONT_RETURN_VERSION = 0x20,
+    RUNTIME_INFO_DONT_SHOW_ERROR_DIALOG = 0x40
+} RUNTIME_INFO_FLAGS;
+
+typedef HRESULT (__stdcall *FExecuteInAppDomainCallback)([in] void* cookie);
+
 [
     uuid(F31D1788-C397-4725-87A5-6AF3472C2791),
     version(1.0),
@@ -121,6 +133,8 @@ interface IHostControl : IUnknown
                             [in] IUnknown* appDomainManager);
 }
 
+cpp_quote("DEFINE_GUID(CLSID_CorRuntimeHost, 0xcb2f6723,0xab3a,0x11d2,0x9c,0x40,0x00,0xc0,0x4f,0xa3,0x0a,0x3e);")
+
 [
     uuid(CB2F6722-AB3A-11d2-9C40-00C04FA30A3E),
     version(1.0),
@@ -170,3 +184,43 @@ interface ICorRuntimeHost : IUnknown
 
     HRESULT CurrentDomain([out] IUnknown** appDomain);
 };
+
+cpp_quote("DEFINE_GUID(CLSID_CLRRuntimeHost, 0x90f1a06e,0x7712,0x4762,0x86,0xb5,0x7a,0x5e,0xba,0x6b,0xdb,0x02);")
+
+[
+    uuid(90f1a06c-7712-4762-86b5-7a5eba6bdb02),
+    local,
+    object
+]
+interface ICLRRuntimeHost : IUnknown
+{
+    HRESULT Start();
+
+    HRESULT Stop();
+
+    HRESULT SetHostControl([in] IHostControl *pHostControl);
+
+    HRESULT GetCLRControl([out] ICLRControl **pCLRControl);
+
+    HRESULT UnloadAppDomain([in] DWORD dwAppDomainId,
+                            [in] BOOL fWaitUntilDone);
+
+    HRESULT ExecuteInAppDomain([in] DWORD dwAppDomainId,
+                               [in] FExecuteInAppDomainCallback pCallback,
+                               [in] void *cookie);
+
+    HRESULT GetCurrentAppDomainId([out] DWORD *pdwAppDomainId);
+
+    HRESULT ExecuteApplication([in] LPCWSTR pwzAppFullName,
+                               [in] DWORD dwManifestPaths,
+                               [in] LPCWSTR *ppwzManifestPaths,
+                               [in] DWORD dwActivationData,
+                               [in] LPCWSTR *ppwzActivationData,
+                               [out] int *pReturnValue);
+
+    HRESULT ExecuteInDefaultAppDomain([in] LPCWSTR pwzAssemblyPath,
+                                      [in] LPCWSTR pwzTypeName,
+                                      [in] LPCWSTR pwzMethodName,
+                                      [in] LPCWSTR pwzArgument,
+                                      [out] DWORD *pReturnValue);
+}
index e3683e9..1e9ab77 100644 (file)
 #define DISPID_IE8_FRAME          DISPID_IE8_FRAMESITEBASE
 #define DISPID_IE8_IFRAME         DISPID_IE8_FRAMESITEBASE
 
+#define DISPID_IE8_OBJECTBASE  (DISPID_OBJECT+30)
+#define DISPID_IE8_OBJECTMAX   (DISPID_STYLE-1)
+#define DISPID_IE8_OBJECT      DISPID_IE8_OBJECTBASE
+
 #define DISPID_COLLECTION      (DISPID_NORMAL_FIRST+500)
 #define DISPID_OPTIONS_COL     (DISPID_NORMAL_FIRST+500)
 #define DISPID_IMG             (DISPID_IMGBASE+1000)
 #define DISPID_IHTMLDOCUMENT6_IE8_GETELEMENTBYID  DISPID_OMDOCUMENT+105
 #define DISPID_IHTMLDOCUMENT6_UPDATESETTINGS      DISPID_OMDOCUMENT+106
 
+/* IHTMLEmbedElement */
+#define DISPID_IHTMLEMBEDELEMENT_HIDDEN       DISPID_OBJECT+10
+#define DISPID_IHTMLEMBEDELEMENT_PALETTE      DISPID_OBJECT+4
+#define DISPID_IHTMLEMBEDELEMENT_PLUGINSPAGE  DISPID_OBJECT+5
+#define DISPID_IHTMLEMBEDELEMENT_SRC          DISPID_OBJECT+6
+#define DISPID_IHTMLEMBEDELEMENT_UNITS        DISPID_OBJECT+8
+#define DISPID_IHTMLEMBEDELEMENT_NAME         STDPROPID_XOBJ_NAME
+#define DISPID_IHTMLEMBEDELEMENT_WIDTH        STDPROPID_XOBJ_WIDTH
+#define DISPID_IHTMLEMBEDELEMENT_HEIGHT       STDPROPID_XOBJ_HEIGHT
+
+/* IHTMLEmbedElement2 */
+#define DISPID_IHTMLEMBEDELEMENT2_IE8_SRC          DISPID_IE8_EMBED
+#define DISPID_IHTMLEMBEDELEMENT2_IE8_PLUGINSPAGE  DISPID_IE8_EMBED+1
+
 /* IHTMLElementCollection */
 #define DISPID_IHTMLELEMENTCOLLECTION_LENGTH     DISPID_COLLECTION
 #define DISPID_IHTMLELEMENTCOLLECTION_TOSTRING   (DISPID_COLLECTION+1)
 /* IHTMLScriptElement3 */
 #define DISPID_IHTMLSCRIPTELEMENT3_IE8_SRC  DISPID_IE8_SCRIPT
 
+/* IHTMLObjectElement */
+#define DISPID_IHTMLOBJECTELEMENT_OBJECT              DISPID_OBJECT+1
+#define DISPID_IHTMLOBJECTELEMENT_CLASSID             DISPID_OBJECT+2
+#define DISPID_IHTMLOBJECTELEMENT_DATA                DISPID_OBJECT+3
+#define DISPID_IHTMLOBJECTELEMENT_RECORDSET           DISPID_OBJECT+5
+#define DISPID_IHTMLOBJECTELEMENT_ALIGN               STDPROPID_XOBJ_CONTROLALIGN
+#define DISPID_IHTMLOBJECTELEMENT_NAME                STDPROPID_XOBJ_NAME
+#define DISPID_IHTMLOBJECTELEMENT_CODEBASE            DISPID_OBJECT+6
+#define DISPID_IHTMLOBJECTELEMENT_CODETYPE            DISPID_OBJECT+7
+#define DISPID_IHTMLOBJECTELEMENT_CODE                DISPID_OBJECT+8
+#define DISPID_IHTMLOBJECTELEMENT_BASEHREF            STDPROPID_XOBJ_BASEHREF
+#define DISPID_IHTMLOBJECTELEMENT_TYPE                DISPID_OBJECT+9
+#define DISPID_IHTMLOBJECTELEMENT_FORM                DISPID_SITE+4
+#define DISPID_IHTMLOBJECTELEMENT_WIDTH               STDPROPID_XOBJ_WIDTH
+#define DISPID_IHTMLOBJECTELEMENT_HEIGHT              STDPROPID_XOBJ_HEIGHT
+#define DISPID_IHTMLOBJECTELEMENT_READYSTATE          DISPID_OBJECT+10
+#define DISPID_IHTMLOBJECTELEMENT_ONREADYSTATECHANGE  DISPID_EVPROP_ONREADYSTATECHANGE
+#define DISPID_IHTMLOBJECTELEMENT_ONERROR             DISPID_EVPROP_ONERROR
+#define DISPID_IHTMLOBJECTELEMENT_ALTHTML             DISPID_OBJECT+11
+#define DISPID_IHTMLOBJECTELEMENT_VSPACE              DISPID_OBJECT+12
+#define DISPID_IHTMLOBJECTELEMENT_HSPACE              DISPID_OBJECT+13
+
+/* IHTMLObjectElement2 */
+#define DISPID_IHTMLOBJECTELEMENT2_NAMEDRECORDSET  DISPID_OBJECT+14
+#define DISPID_IHTMLOBJECTELEMENT2_CLASSID         DISPID_OBJECT+2
+#define DISPID_IHTMLOBJECTELEMENT2_DATA            DISPID_OBJECT+3
+
+/* IHTMLObjectElement3 */
+#define DISPID_IHTMLOBJECTELEMENT3_ARCHIVE  DISPID_OBJECT+15
+#define DISPID_IHTMLOBJECTELEMENT3_ALT      DISPID_OBJECT+16
+#define DISPID_IHTMLOBJECTELEMENT3_DECLARE  DISPID_OBJECT+17
+#define DISPID_IHTMLOBJECTELEMENT3_STANDBY  DISPID_OBJECT+18
+#define DISPID_IHTMLOBJECTELEMENT3_BORDER   DISPID_OBJECT+19
+#define DISPID_IHTMLOBJECTELEMENT3_USEMAP   DISPID_OBJECT+20
+
+/* IHTMLObjectElement4 */
+#define DISPID_IHTMLOBJECTELEMENT4_CONTENTDOCUMENT  DISPID_IE8_OBJECT
+#define DISPID_IHTMLOBJECTELEMENT4_IE8_CODEBASE     DISPID_IE8_OBJECT+1
+#define DISPID_IHTMLOBJECTELEMENT4_IE8_DATA         DISPID_IE8_OBJECT+2
+
+/* IHTMLParamElement */
+#define DISPID_IHTMLPARAMELEMENT_NAME       DISPID_PARAM+1
+#define DISPID_IHTMLPARAMELEMENT_VALUE      DISPID_PARAM+2
+#define DISPID_IHTMLPARAMELEMENT_TYPE       DISPID_PARAM+3
+#define DISPID_IHTMLPARAMELEMENT_VALUETYPE  DISPID_PARAM+4
+
+/* IHTMLParamElement2 */
+#define DISPID_IHTMLPARAMELEMENT2_NAME           DISPID_PARAM+1
+#define DISPID_IHTMLPARAMELEMENT2_TYPE           DISPID_PARAM+3
+#define DISPID_IHTMLPARAMELEMENT2_VALUE          DISPID_PARAM+2
+#define DISPID_IHTMLPARAMELEMENT2_IE8_VALUETYPE  DISPID_IE8_PARAM
+
 /* IHTMLFrameBase */
 #define DISPID_IHTMLFRAMEBASE_SRC           DISPID_FRAMESITE+0
 #define DISPID_IHTMLFRAMEBASE_NAME          STDPROPID_XOBJ_NAME
 #define DISPID_IHTMLIFRAMEELEMENT2_HEIGHT  STDPROPID_XOBJ_HEIGHT
 #define DISPID_IHTMLIFRAMEELEMENT2_WIDTH   STDPROPID_XOBJ_WIDTH
 
+/* IHTMLStyleElement */
+#define DISPID_IHTMLSTYLEELEMENT_TYPE                DISPID_STYLEELEMENT+2
+#define DISPID_IHTMLSTYLEELEMENT_READYSTATE          DISPID_A_READYSTATE
+#define DISPID_IHTMLSTYLEELEMENT_ONREADYSTATECHANGE  DISPID_EVPROP_ONREADYSTATECHANGE
+#define DISPID_IHTMLSTYLEELEMENT_ONLOAD              DISPID_EVPROP_ONLOAD
+#define DISPID_IHTMLSTYLEELEMENT_ONERROR             DISPID_EVPROP_ONERROR
+#define DISPID_IHTMLSTYLEELEMENT_STYLESHEET          DISPID_STYLEELEMENT+4
+#define DISPID_IHTMLSTYLEELEMENT_DISABLED            STDPROPID_XOBJ_DISABLED
+#define DISPID_IHTMLSTYLEELEMENT_MEDIA               DISPID_STYLEELEMENT+6
+
 /* IHTMLControlElement */
 #define DISPID_IHTMLCONTROLELEMENT_TABINDEX        STDPROPID_XOBJ_TABINDEX
 #define DISPID_IHTMLCONTROLELEMENT_FOCUS           (DISPID_SITE+0)
index 1941b92..0269b66 100644 (file)
@@ -6174,6 +6174,30 @@ interface IHTMLStyleSheetsCollection : IDispatch
         [retval, out] VARIANT *pvarResult);
 }
 
+/*****************************************************************************
+ *    DispHTMLStyleSheetsCollection dispinterface
+ */
+[
+    hidden,
+    uuid(3050f547-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleSheetsCollection
+{
+properties:
+methods:
+    [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)]
+    long length();
+
+    [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM), hidden, restricted]
+    IUnknown *_newEnum();
+
+    [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)]
+    VARIANT item([in] VARIANT *pvarIndex);
+
+    [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+    IDispatch *constructor();
+}
+
 /*****************************************************************************
  *    IHTMLTxtRange interface
  */
@@ -9145,13 +9169,33 @@ interface IHTMLPluginsCollection : IDispatch
     HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
 }
 
+[
+    hidden,
+    uuid(3050f54a-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispCPlugins
+{
+ properties:
+methods:
+    [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)]
+    long length();
+
+    [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)]
+    void refresh([defaultvalue(0), in] VARIANT_BOOL reload);
+
+    [propget, id(DISPID_IHTMLDOMCONSTRUCTOR_CONSTRUCTOR), hidden]
+    IDispatch *constructor();
+}
+
 [
     noncreatable,
     uuid(3050f3ff-98b5-11cf-bb82-00aa00bdce0b)
 ]
 coclass CPlugins
 {
-    [default]           interface IHTMLPluginsCollection;
+    [default]  dispinterface DispCPlugins;
+               interface IHTMLPluginsCollection;
+               interface IHTMLDOMConstructor;
 }
 
 /*****************************************************************************
@@ -13093,6 +13137,125 @@ coclass HTMLDocument
                       interface IHTMLDOMNode2;
 }
 
+/*****************************************************************************
+ *    IHTMLEmbedElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050f25f-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLEmbedElement : IDispatch
+{
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)]
+    HRESULT hidden([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)]
+    HRESULT hidden([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_PALETTE)]
+    HRESULT palette([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_PLUGINSPAGE)]
+    HRESULT pluginspage([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_SRC)]
+    HRESULT src([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_SRC)]
+    HRESULT src([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_UNITS)]
+    HRESULT units([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_UNITS)]
+    HRESULT units([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)]
+    HRESULT width([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)]
+    HRESULT width([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)]
+    HRESULT height([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)]
+    HRESULT height([retval, out] VARIANT *p);
+}
+
+/*****************************************************************************
+ *    DispHTMLEmbedElement dispinterface
+ */
+[
+    hidden,
+    uuid(3050f52e-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLEmbed
+{
+properties:
+methods:
+    WINE_HTMLELEMENT_DISPINTERFACE_DECL;
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)]
+    void hidden(BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)]
+    BSTR hidden();
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_PALETTE)]
+    BSTR palette();
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_PLUGINSPAGE)]
+    BSTR pluginspage();
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_SRC)]
+    void src(BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_SRC)]
+    BSTR src();
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_UNITS)]
+    void units(BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_UNITS)]
+    BSTR units();
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable]
+    void name(BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable]
+    BSTR name();
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)]
+    void width(VARIANT v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)]
+    VARIANT width();
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)]
+    void height(VARIANT v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)]
+    VARIANT height();
+
+    [propput, id(DISPID_IHTMLEMBEDELEMENT2_IE8_SRC)]
+    void ie8_src(BSTR v);
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT2_IE8_SRC)]
+    BSTR ie8_src();
+
+    [propget, id(DISPID_IHTMLEMBEDELEMENT2_IE8_PLUGINSPAGE)]
+    BSTR ie8_pluginspage();
+}
+
 /*****************************************************************************
  *    IHTMLCommentElement interface
  */
@@ -14780,6 +14943,405 @@ methods:
     BSTR ie8_src();
 }
 
+/*****************************************************************************
+ *    IHTMLObjectElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050f24f-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLObjectElement : IDispatch
+{
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_OBJECT), hidden]
+    HRESULT object([retval, out] IDispatch **p);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CLASSID), hidden]
+    HRESULT classid([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_DATA), hidden]
+    HRESULT data([retval, out] BSTR *p);
+
+    [propputref, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden]
+    HRESULT recordset([in] IDispatch *v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden]
+    HRESULT recordset([retval, out] IDispatch **p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable]
+    HRESULT align([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable]
+    HRESULT align([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable]
+    HRESULT codeBase([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable]
+    HRESULT codeBase([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable]
+    HRESULT codeType([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable]
+    HRESULT codeType([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable]
+    HRESULT code([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable]
+    HRESULT code([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_BASEHREF)]
+    HRESULT BaseHref([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable]
+    HRESULT type([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable]
+    HRESULT type([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_FORM)]
+    HRESULT form([retval, out] IHTMLFormElement **p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)]
+    HRESULT width([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)]
+    HRESULT width([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)]
+    HRESULT height([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)]
+    HRESULT height([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_READYSTATE), hidden]
+    HRESULT readyState([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ONREADYSTATECHANGE), displaybind, bindable]
+    HRESULT onreadystatechange([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ONREADYSTATECHANGE), displaybind, bindable]
+    HRESULT onreadystatechange([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable]
+    HRESULT onerror([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable]
+    HRESULT onerror([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)]
+    HRESULT altHtml([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)]
+    HRESULT altHtml([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)]
+    HRESULT vspace([in] long v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)]
+    HRESULT vspace([retval, out] long *p);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)]
+    HRESULT hspace([in] long v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)]
+    HRESULT hspace([retval, out] long *p);
+}
+
+/*****************************************************************************
+ *    IHTMLParamElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050f83d-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLParamElement : IDispatch
+{
+    [propput, id(DISPID_IHTMLPARAMELEMENT_NAME), displaybind, bindable]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_NAME), displaybind, bindable]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_VALUE), displaybind, bindable]
+    HRESULT value([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_VALUE), displaybind, bindable]
+    HRESULT value([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_TYPE), displaybind, bindable]
+    HRESULT type([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_TYPE), displaybind, bindable]
+    HRESULT type([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_VALUETYPE), displaybind, bindable]
+    HRESULT valueType([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_VALUETYPE), displaybind, bindable]
+    HRESULT valueType([retval, out] BSTR *p);
+}
+
+/*****************************************************************************
+ *    IHTMLParamElement2 interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(30510444-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLParamElement2 : IDispatch
+{
+    [propput, id(DISPID_IHTMLPARAMELEMENT2_NAME), displaybind, bindable]
+    HRESULT name([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT2_NAME), displaybind, bindable]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT2_TYPE), displaybind, bindable]
+    HRESULT type([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT2_TYPE), displaybind, bindable]
+    HRESULT type([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT2_VALUE), displaybind, bindable]
+    HRESULT value([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT2_VALUE), displaybind, bindable]
+    HRESULT value([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT2_IE8_VALUETYPE)]
+    HRESULT valueType([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT2_IE8_VALUETYPE)]
+    HRESULT valueType([retval, out] BSTR *p);
+}
+
+/*****************************************************************************
+ *    DispHTMLObjectElement dispinterface
+ */
+[
+    hidden,
+    uuid(3050f529-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLObjectElement
+{
+properties:
+methods:
+    WINE_HTMLELEMENT_DISPINTERFACE_DECL;
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_OBJECT), hidden]
+    IDispatch *object();
+
+    [propputref, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden]
+    void recordset(IDispatch *v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden]
+    IDispatch *recordset();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable]
+    void align(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable]
+    BSTR align();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable]
+    void name(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable]
+    BSTR name();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable]
+    void codeBase(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable]
+    BSTR codeBase();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable]
+    void codeType(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable]
+    BSTR codeType();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable]
+    void code(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable]
+    BSTR code();
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_BASEHREF)]
+    BSTR BaseHref();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable]
+    void type(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable]
+    BSTR type();
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_FORM)]
+    IHTMLFormElement *form();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)]
+    void width(VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)]
+    VARIANT width();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)]
+    void height(VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)]
+    VARIANT height();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable]
+    void onerror(VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable]
+    VARIANT onerror();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)]
+    void altHtml(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)]
+    BSTR altHtml();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)]
+    void vspace(long v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)]
+    long vspace();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)]
+    void hspace(long v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)]
+    long hspace();
+
+    [id(DISPID_IHTMLOBJECTELEMENT2_NAMEDRECORDSET)]
+    IDispatch *namedRecordset(
+            [in] BSTR dataMember,
+            [optional, in] VARIANT *hierarchy);
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT2_CLASSID), hidden]
+    void classid(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT2_CLASSID), hidden]
+    BSTR classid();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT2_DATA), hidden]
+    void data(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT2_DATA), hidden]
+    BSTR data();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT3_ARCHIVE), displaybind, bindable]
+    void archive(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT3_ARCHIVE), displaybind, bindable]
+    BSTR archive();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT3_ALT), displaybind, bindable]
+    void alt(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT3_ALT), displaybind, bindable]
+    BSTR alt();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT3_DECLARE), displaybind, bindable]
+    void declare(VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT3_DECLARE), displaybind, bindable]
+    VARIANT_BOOL declare();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT3_STANDBY), displaybind, bindable]
+    void standby(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT3_STANDBY), displaybind, bindable]
+    BSTR standby();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT3_BORDER)]
+    void border(VARIANT v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT3_BORDER)]
+    VARIANT border();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT3_USEMAP), displaybind, bindable]
+    void useMap(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT3_USEMAP), displaybind, bindable]
+    BSTR useMap();
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT4_CONTENTDOCUMENT)]
+    IDispatch *contentDocument();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT4_IE8_CODEBASE)]
+    void ie8_codeBase(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT4_IE8_CODEBASE)]
+    BSTR ie8_codeBase();
+
+    [propput, id(DISPID_IHTMLOBJECTELEMENT4_IE8_DATA)]
+    void ie8_data(BSTR v);
+
+    [propget, id(DISPID_IHTMLOBJECTELEMENT4_IE8_DATA)]
+    BSTR ie8_data();
+}
+
+/*****************************************************************************
+ *    DispHTMLParamElement dispinterface
+ */
+[
+    hidden,
+    uuid(3050f590-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLParamElement
+{
+properties:
+methods:
+    WINE_HTMLELEMENT_DISPINTERFACE_DECL;
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_NAME), displaybind, bindable]
+    void name(BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_NAME), displaybind, bindable]
+    BSTR name();
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_VALUE), displaybind, bindable]
+    void value(BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_VALUE), displaybind, bindable]
+    BSTR value();
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_TYPE), displaybind, bindable]
+    void type(BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_TYPE), displaybind, bindable]
+    BSTR type();
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT_VALUETYPE), displaybind, bindable]
+    void valueType(BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT_VALUETYPE), displaybind, bindable]
+    BSTR valueType();
+
+    [propput, id(DISPID_IHTMLPARAMELEMENT2_IE8_VALUETYPE)]
+    void ie8_valueType(BSTR v);
+
+    [propget, id(DISPID_IHTMLPARAMELEMENT2_IE8_VALUETYPE)]
+    BSTR ie8_valueType();
+}
+
 /*****************************************************************************
  *    IHTMLFrameBase interface
  */
@@ -15127,6 +15689,101 @@ methods:
     VARIANT width();
 }
 
+/*****************************************************************************
+ *    IHTMLStyleElement interface
+ */
+[
+    odl,
+    oleautomation,
+    dual,
+    uuid(3050f375-98b5-11cf-bb82-00aa00bdce0b)
+]
+interface IHTMLStyleElement : IDispatch
+{
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable]
+    HRESULT type([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable]
+    HRESULT type([retval, out] BSTR *p);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_READYSTATE)]
+    HRESULT readyState([retval, out] BSTR *p);
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONREADYSTATECHANGE), displaybind, bindable]
+    HRESULT onreadystatechange([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONREADYSTATECHANGE), displaybind, bindable]
+    HRESULT onreadystatechange([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable]
+    HRESULT onload([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable]
+    HRESULT onload([retval, out] VARIANT *p);
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable]
+    HRESULT onerror([in] VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable]
+    HRESULT onerror([retval, out] VARIANT *p);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_STYLESHEET)]
+    HRESULT styleSheet([retval, out] IHTMLStyleSheet **p);
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_DISABLED), displaybind, bindable]
+    HRESULT disabled([in] VARIANT_BOOL v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_DISABLED), displaybind, bindable]
+    HRESULT disabled([retval, out] VARIANT_BOOL *p);
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable]
+    HRESULT media([in] BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable]
+    HRESULT media([retval, out] BSTR *p);
+}
+
+/*****************************************************************************
+ *    DispHTMLStyleElement dispinterface
+ */
+[
+    hidden,
+    uuid(3050f511-98b5-11cf-bb82-00aa00bdce0b)
+]
+dispinterface DispHTMLStyleElement
+{
+properties:
+methods:
+    WINE_HTMLELEMENT_DISPINTERFACE_DECL;
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable]
+    void type(BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable]
+    BSTR type();
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable]
+    void onload(VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable]
+    VARIANT onload();
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable]
+    void onerror(VARIANT v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable]
+    VARIANT onerror();
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_STYLESHEET)]
+    IHTMLStyleSheet *styleSheet();
+
+    [propput, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable]
+    void media(BSTR v);
+
+    [propget, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable]
+    BSTR media();
+}
+
 /*****************************************************************************
  *    IMarkupContainer interface
  */
index cc70cce..ecff641 100644 (file)
 import "oaidl.idl";
 import "oleidl.idl";
 
+#ifndef __WIDL__
+#define threading(model)
+#define progid(str)
+#define vi_progid(str)
+#endif
+
 cpp_quote("#define TASK_SUNDAY 0x1")
 cpp_quote("#define TASK_MONDAY 0x2")
 cpp_quote("#define TASK_TUESDAY 0x4")
@@ -368,6 +374,7 @@ interface ITaskScheduler : IUnknown
 }
 
 [
+    threading(both),
     uuid(148BD52A-A2AB-11CE-B11F-00AA00530503)
 ]
 coclass CTaskScheduler
@@ -377,6 +384,7 @@ coclass CTaskScheduler
 
 
 [
+    threading(both),
     uuid(148BD520-A2AB-11CE-B11F-00AA00530503)
 ]
 coclass CTask
index 444ebe8..d91ba47 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2005 Vijay Kiran Kamuju
  * Copyright (C) 2008 Alistair Leslie-Hughes
+ * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -18,7 +19,7 @@
  */
 
 #include <msxml2did.h>
-#include <olectl.h>
+#include <idispids.h>
 
 import "unknwn.idl";
 import "objidl.idl";
@@ -54,6 +55,7 @@ interface IXMLDOMNotation;
 interface IXMLDOMEntity;
 interface IXMLDOMEntityReference;
 interface IXMLDOMParseError;
+interface IXMLDOMParseErrorCollection;
 interface IXTLRuntime;
 interface IXSLTemplate;
 interface IXSLProcessor;
@@ -631,6 +633,27 @@ interface IXMLDOMDocument2 : IXMLDOMDocument
         [retval, out] VARIANT *var);
 }
 
+[
+    local,
+    object,
+    dual,
+    uuid(2933bf96-7b36-11d2-b20e-00c04f983e60),
+    oleautomation,
+]
+interface IXMLDOMDocument3 : IXMLDOMDocument2
+{
+    [id(DISPID_XMLDOM_DOCUMENT3_VALIDATENODE)]
+    HRESULT validateNode(
+        [in] IXMLDOMNode *node,
+        [out, retval] IXMLDOMParseError **error);
+
+    [id(DISPID_XMLDOM_DOCUMENT3_IMPORTNODE)]
+    HRESULT importNode(
+        [in] IXMLDOMNode *node,
+        [in] VARIANT_BOOL deep,
+        [out, retval] IXMLDOMNode **clone);
+}
+
 [
 local,
 object,
@@ -1235,6 +1258,74 @@ interface IXMLHTTPRequest : IDispatch
     HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
 };
 
+[
+object,
+dual,
+oleautomation,
+uuid(2e9196bf-13ba-4dd4-91ca-6c571f281495)
+]
+interface IServerXMLHTTPRequest : IXMLHTTPRequest
+{
+    typedef enum _SERVERXMLHTTP_OPTION
+    {
+        SXH_OPTION_URL = -1,
+        SXH_OPTION_URL_CODEPAGE,
+        SXH_OPTION_ESCAPE_PERCENT_IN_URL,
+        SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS,
+        SXH_OPTION_SELECT_CLIENT_SSL_CERT
+    } SERVERXMLHTTP_OPTION;
+
+    [id(15)]
+    HRESULT setTimeouts(
+        [in] long resolveTimeout,
+        [in] long connectTimeout,
+        [in] long sendTimeout,
+        [in] long receiveTimeout);
+
+    [id(16)]
+    HRESULT waitForResponse(
+        [in, optional] VARIANT timeoutInSeconds,
+        [out, retval] VARIANT_BOOL * isSuccessful);
+
+    [id(17)]
+    HRESULT getOption(
+        [in] SERVERXMLHTTP_OPTION option,
+        [out, retval] VARIANT * value);
+
+    [id(18)]
+    HRESULT setOption(
+        [in] SERVERXMLHTTP_OPTION option,
+        [in] VARIANT value);
+}
+
+[
+object,
+dual,
+oleautomation,
+uuid(2e01311b-c322-4b0a-bd77-b90cfdc8dce7)
+]
+interface IServerXMLHTTPRequest2 : IServerXMLHTTPRequest
+{
+    typedef enum _SXH_PROXY_SETTING
+    {
+        SXH_PROXY_SET_DEFAULT = 0,
+        SXH_PROXY_SET_PRECONFIG = 0,
+        SXH_PROXY_SET_DIRECT,
+        SXH_PROXY_SET_PROXY
+    } SXH_PROXY_SETTING;
+
+    [id(19)]
+    HRESULT setProxy(
+        [in] SXH_PROXY_SETTING proxySetting,
+        [in, optional] VARIANT varProxyServer,
+        [in, optional] VARIANT varBypassList);
+
+    [id(20)]
+    HRESULT setProxyCredentials(
+        [in] BSTR bstrUserName,
+        [in] BSTR bstrPassword);
+}
+
 [
 local,
 object,
@@ -1266,6 +1357,57 @@ interface IXMLDOMParseError : IDispatch
     HRESULT filepos([retval, out] LONG * filePos);
 }
 
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa428-272f-11d2-836f-0000f87a7782)
+]
+interface IXMLDOMParseError2 : IXMLDOMParseError
+{
+    [propget, id(DISPID_DOM_ERROR2_ERRORXPATH)]
+    HRESULT errorXPath([retval, out] BSTR *xpathexpr);
+
+    [propget, id(DISPID_DOM_ERROR2_ALLERRORS)]
+    HRESULT allErrors([retval, out] IXMLDOMParseErrorCollection **allErrors);
+
+    [id(DISPID_DOM_ERROR2_ERRORPARAMETERS)]
+    HRESULT errorParameters(
+        [in] long index,
+        [retval, out] BSTR *param);
+
+    [propget, id(DISPID_DOM_ERROR2_ERRORPARAMETERSCOUNT)]
+    HRESULT errorParametersCount([retval, out] long *count);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa429-272f-11d2-836f-0000f87a7782)
+]
+interface IXMLDOMParseErrorCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT item(
+        [in] long index,
+        [retval, out] IXMLDOMParseError2 **error);
+
+    [propget, id(DISPID_DOM_ERRORCOLLECTION_LENGTH)]
+    HRESULT length( [retval, out] long *length);
+
+    [propget, id(DISPID_DOM_ERRORCOLLECTION_NEXT)]
+    HRESULT next( [retval, out] IXMLDOMParseError2 **error);
+
+    [id(DISPID_DOM_ERRORCOLLECTION_RESET)]
+    HRESULT reset();
+
+    [propget, hidden, restricted, id(DISPID_NEWENUM)]
+    HRESULT _newEnum( [retval, out] IUnknown **ppunk);
+}
+
 [
     uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
 ]
@@ -1302,6 +1444,15 @@ coclass DOMDocument40
     [default, source] dispinterface XMLDOMDocumentEvents;
 }
 
+[
+    uuid(88d96a05-f192-11d4-a65f-0040963251e5)
+]
+coclass DOMDocument60
+{
+    [default] interface IXMLDOMDocument3;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
 [
     uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
 ]
@@ -1330,13 +1481,94 @@ coclass FreeThreadedDOMDocument30
 }
 
 [
-    uuid(88d969c1-f192-11d4-a65f-0040963251e5),
+    uuid(88d969c1-f192-11d4-a65f-0040963251e5)
 ]
 coclass FreeThreadedDOMDocument40
 {
     [default] interface IXMLDOMDocument2;
     [default, source] dispinterface XMLDOMDocumentEvents;
-};
+}
+
+[
+    uuid(88d96a06-f192-11d4-a65f-0040963251e5),
+]
+coclass FreeThreadedDOMDocument60
+{
+    [default] interface IXMLDOMDocument3;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(f6d90f16-9c73-11d3-b32e-00c04f990bb4)
+]
+coclass XMLHTTP
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
+]
+coclass XMLHTTP26
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(f5078f35-c551-11d3-89b9-0000f81fe221)
+]
+coclass XMLHTTP30
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(88d969c5-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLHTTP40
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(88d96a0a-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLHTTP60
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(afba6b42-5692-48ea-8141-dc517dcf0ef1)
+]
+coclass ServerXMLHTTP
+{
+    [default] interface IServerXMLHTTPRequest;
+}
+
+[
+    uuid(afb40ffd-b609-40a3-9828-f88bbe11e4e3)
+]
+coclass ServerXMLHTTP30
+{
+    [default] interface IServerXMLHTTPRequest;
+}
+
+[
+    uuid(88d969c6-f192-11d4-a65f-0040963251e5)
+]
+coclass ServerXMLHTTP40
+{
+    [default] interface IServerXMLHTTPRequest2;
+}
+
+[
+    uuid(88d96a0b-f192-11d4-a65f-0040963251e5)
+]
+coclass ServerXMLHTTP60
+{
+    [default] interface IServerXMLHTTPRequest2;
+}
 
 [
     uuid(373984c9-b845-449b-91e7-45ac83036ade)
@@ -1368,7 +1600,15 @@ coclass XMLSchemaCache30
 coclass XMLSchemaCache40
 {
     [default] interface IXMLDOMSchemaCollection2;
-};
+}
+
+[
+    uuid(88d96a07-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLSchemaCache60
+{
+    [default] interface IXMLDOMSchemaCollection2;
+}
 
 [
     uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
@@ -1394,6 +1634,22 @@ coclass XSLTemplate30
     [default] interface IXSLTemplate;
 }
 
+[
+    uuid(88d969c3-f192-11d4-a65f-0040963251e5)
+]
+coclass XSLTemplate40
+{
+    [default] interface IXSLTemplate;
+}
+
+[
+    uuid(88d96a08-f192-11d4-a65f-0040963251e5)
+]
+coclass XSLTemplate60
+{
+    [default] interface IXSLTemplate;
+}
+
 /*
  * Sax Interfaces
  */
@@ -2143,6 +2399,19 @@ interface IMXAttributes : IDispatch
     HRESULT setValue([in] int index, [in] BSTR value);
 };
 
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(fa4bb38c-faf9-4cca-9302-d1dd0fe520db)
+]
+interface IMXSchemaDeclHandler : IDispatch
+{
+    [id(DISPID_MX_SCHEMADECLHANDLER_SCHEMAELEMENTDECL)]
+    HRESULT schemaElementDecl( [in] ISchemaElement *oSchemaElement );
+}
+
 [
     object,
     dual,
@@ -2213,6 +2482,179 @@ interface IMXWriter :  IDispatch
     HRESULT flush();
 };
 
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(c90352f4-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IMXNamespacePrefixes : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT item(
+        [in] long index,
+        [out, retval] BSTR *prefix);
+
+    [propget, id(DISPID_MX_NSMGR_LENGTH)]
+    HRESULT length( [out,retval] long *length );
+
+    [propget, restricted, hidden, id(DISPID_NEWENUM)]
+    HRESULT _newEnum( [out, retval] IUnknown **ppUnk );
+}
+
+[
+    local,
+    object,
+    hidden,
+    uuid(c90352f6-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IMXNamespaceManager : IUnknown
+{
+    HRESULT putAllowOverride([in] VARIANT_BOOL fOverride);
+
+    HRESULT getAllowOverride([out, retval] VARIANT_BOOL *fOverride);
+
+    HRESULT reset();
+
+    HRESULT pushContext();
+
+    HRESULT pushNodeContext(
+        [in] IXMLDOMNode *contextNode,
+        [in] VARIANT_BOOL fDeep);
+
+    HRESULT popContext();
+
+    HRESULT declarePrefix(
+        [in] const WCHAR *prefix,
+        [in] const WCHAR *namespaceURI);
+
+    HRESULT getDeclaredPrefix(
+        [in] long nIndex,
+        [in, out] WCHAR *pwchPrefix,
+        [in, out] int *pcchPrefix);
+
+    HRESULT getPrefix(
+        [in] const WCHAR *pwszNamespaceURI,
+        [in] long nIndex,
+        [in, out] WCHAR *pwchPrefix,
+        [in, out] int *pcchPrefix);
+
+    HRESULT getURI(
+        [in] const WCHAR *pwchPrefix,
+        [in] IXMLDOMNode* pContextNode,
+        [in, out] WCHAR *pwchUri,
+        [in, out] int *pcchUri);
+}
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(c90352f5-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IVBMXNamespaceManager : IDispatch
+{
+    [propput, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
+    HRESULT allowOverride([in] VARIANT_BOOL fOverride);
+
+    [propget, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
+    HRESULT allowOverride([out,retval] VARIANT_BOOL* fOverride);
+
+    [id(DISPID_MX_NSMGR_RESET)]
+    HRESULT reset();
+
+    [id(DISPID_MX_NSMGR_PUSHCONTEXT)]
+    HRESULT pushContext();
+
+    [id(DISPID_MX_NSMGR_PUSHNODECONTEXT)]
+    HRESULT pushNodeContext(
+        [in] IXMLDOMNode* contextNode,
+        [in, defaultvalue(-1)] VARIANT_BOOL fDeep);
+
+    [id(DISPID_MX_NSMGR_POPCONTEXT)]
+    HRESULT popContext();
+
+    [id(DISPID_MX_NSMGR_DECLAREPREFIX)]
+    HRESULT declarePrefix(
+        [in] BSTR prefix,
+        [in] BSTR namespaceURI);
+
+    [id(DISPID_MX_NSMGR_GETDECLAREDPREFIXES)]
+    HRESULT getDeclaredPrefixes([out, retval] IMXNamespacePrefixes** prefixes);
+
+    [id(DISPID_MX_NSMGR_GETPREFIXES)]
+    HRESULT getPrefixes(
+        [in] BSTR namespaceURI,
+        [out, retval] IMXNamespacePrefixes** prefixes);
+
+    [id(DISPID_MX_NSMGR_GETURI)]
+    HRESULT getURI(
+        [in] BSTR prefix,
+        [out, retval] VARIANT* uri);
+
+    [id(DISPID_MX_NSMGR_GETURIFROMNODE)]
+    HRESULT getURIFromNode(
+        [in] BSTR strPrefix,
+        [in] IXMLDOMNode* contextNode,
+        [out, retval] VARIANT* uri);
+}
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(c90352f7-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IMXXMLFilter : IDispatch
+{
+    [id(DISPID_MXXML_FILTER_GETFEATURE)]
+    HRESULT getFeature(
+        [in] BSTR strName,
+        [out, retval] VARIANT_BOOL * fValue);
+
+    [id(DISPID_MXXML_FILTER_PUTFEATURE)]
+    HRESULT putFeature(
+        [in] BSTR strName,
+        [in] VARIANT_BOOL fValue);
+
+    [id(DISPID_MXXML_FILTER_GETPROPERTY)]
+    HRESULT getProperty(
+        [in] BSTR strName,
+        [out, retval] VARIANT * varValue);
+
+    [id(DISPID_MXXML_FILTER_PUTPROPERTY)]
+    HRESULT putProperty(
+        [in] BSTR strName,
+        [in] VARIANT varValue);
+
+    [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propget]
+    HRESULT entityResolver( [out, retval] IUnknown **oResolver );
+
+    [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propputref]
+    HRESULT entityResolver( [in] IUnknown *oResolver );
+
+    [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propget]
+    HRESULT contentHandler( [out, retval] IUnknown **oHandler );
+
+    [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propputref]
+    HRESULT contentHandler( [in] IUnknown *oHandler );
+
+    [id(DISPID_MXXML_FILTER_DTDHANDLER), propget]
+    HRESULT dtdHandler( [out, retval] IUnknown **oHandler );
+
+    [id(DISPID_MXXML_FILTER_DTDHANDLER), propputref]
+    HRESULT dtdHandler( [in] IUnknown *oHandler );
+
+    [id(DISPID_MXXML_FILTER_ERRORHANDLER), propget]
+    HRESULT errorHandler( [out, retval] IUnknown **oHandler );
+
+    [id(DISPID_MXXML_FILTER_ERRORHANDLER), propputref]
+    HRESULT errorHandler( [in] IUnknown *oHandler );
+}
+
 [
     local,
     object,
@@ -2691,7 +3133,96 @@ coclass SAXXMLReader40
 {
     [default] interface IVBSAXXMLReader;
     interface ISAXXMLReader;
-};
+}
+
+[
+    uuid(88d96a0c-f192-11d4-a65f-0040963251e5)
+]
+coclass SAXXMLReader60
+{
+    [default] interface IVBSAXXMLReader;
+    interface ISAXXMLReader;
+}
+
+[
+    uuid(a4c23ec3-6b70-4466-9127-550077239978)
+]
+coclass MXHTMLWriter
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXErrorHandler;
+    interface ISAXDTDHandler;
+    interface ISAXLexicalHandler;
+    interface ISAXDeclHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(853d1540-c1a7-4aa9-a226-4d3bd301146d)
+]
+coclass MXHTMLWriter30
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(88d969c9-f192-11d4-a65f-0040963251e5)
+]
+coclass MXHTMLWriter40
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(88d96a10-f192-11d4-a65f-0040963251e5)
+]
+coclass MXHTMLWriter60
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
 
 [
     uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
@@ -2751,7 +3282,54 @@ coclass MXXMLWriter40
     interface IVBSAXDTDHandler;
     interface IVBSAXErrorHandler;
     interface IVBSAXLexicalHandler;
-};
+}
+
+[
+    uuid(88d96a0f-f192-11d4-a65f-0040963251e5)
+]
+coclass MXXMLWriter60
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(88d969d5-f192-11d4-a65f-0040963251e5)
+]
+coclass MXNamespaceManager
+{
+    [default] interface IVBMXNamespaceManager;
+    interface IMXNamespaceManager;
+}
+
+[
+    uuid(88d969d6-f192-11d4-a65f-0040963251e5)
+]
+coclass MXNamespaceManager40
+{
+    [default] interface IVBMXNamespaceManager;
+    interface IMXNamespaceManager;
+}
+
+[
+    uuid(88d96a11-f192-11d4-a65f-0040963251e5)
+]
+coclass MXNamespaceManager60
+{
+    [default] interface IVBMXNamespaceManager;
+    interface IMXNamespaceManager;
+}
 
 [
     uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
@@ -2761,7 +3339,7 @@ coclass SAXAttributes
     [default] interface IMXAttributes;
     interface IVBSAXAttributes;
     interface ISAXAttributes;
-};
+}
 
 [
     uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
@@ -2771,7 +3349,7 @@ coclass SAXAttributes30
     [default] interface IMXAttributes;
     interface IVBSAXAttributes;
     interface ISAXAttributes;
-};
+}
 
 [
     uuid(88d969ca-f192-11d4-a65f-0040963251e5),
@@ -2781,7 +3359,24 @@ coclass SAXAttributes40
     [default] interface IMXAttributes;
     interface IVBSAXAttributes;
     interface ISAXAttributes;
-};
+}
 
+[
+    uuid(88d96a0e-f192-11d4-a65f-0040963251e5)
+]
+coclass SAXAttributes60
+{
+    [default] interface IMXAttributes;
+    interface IVBSAXAttributes;
+    interface ISAXAttributes;
+}
+
+/*
+ * Error Codes
+ */
+cpp_quote("#define E_XML_NOTWF              0xC00CE223")
+cpp_quote("#define E_XML_NODTD              0xC00CE224")
+cpp_quote("#define E_XML_INVALID            0xC00CE225")
+cpp_quote("#define E_XML_BUFFERTOOSMALL     0xC00CE226")
 
 } /* Library MSXML */
index d7489d0..1aae2a7 100644 (file)
 #define  DISPID_DOM_ERROR_FILEPOS      0x000000b7
 #define  DISPID_DOM_ERROR__TOP         0x000000b8
 
+#define  DISPID_DOM_ERROR2                      0x000000b9
+#define  DISPID_DOM_ERROR2_ALLERRORS            0x000000ba
+#define  DISPID_DOM_ERROR2_ERRORPARAMETERS      0x000000bb
+#define  DISPID_DOM_ERROR2_ERRORPARAMETERSCOUNT 0x000000bc
+#define  DISPID_DOM_ERROR2_ERRORXPATH           0x000000bd
+#define  DISPID_DOM_ERROR2__TOP                 0x000000be
+
+#define  DISPID_DOM_ERRORCOLLECTION             0x000000bf
+#define  DISPID_DOM_ERRORCOLLECTION_LENGTH      0x000000c0
+#define  DISPID_DOM_ERRORCOLLECTION_NEXT        0x000000c1
+#define  DISPID_DOM_ERRORCOLLECTION_RESET       0x000000c2
+#define  DISPID_DOM_ERRORCOLLECTION__TOP        0x000000c3
+
 #define  DISPID_XTLRUNTIME                     0x000000b9
 #define  DISPID_XTLRUNTIME_UNIQUEID            0x000000ba
 #define  DISPID_XTLRUNTIME_DEPTH               0x000000bb
 #define DISPID_XMLDOM_DOCUMENT2_GETPROPERTY    0x000000cc
 #define DISPID_XMLDOM_DOCUMENT2__TOP           0x000000cd
 
+#define DISPID_XMLDOM_DOCUMENT3                0x000000ce
+#define DISPID_XMLDOM_DOCUMENT3_VALIDATENODE   0x000000cf
+#define DISPID_XMLDOM_DOCUMENT3_IMPORTNODE     0x000000d0
+#define DISPID_XMLDOM_DOCUMENT3__TOP           0x000000d1
+
 #define DISPID_XMLDOM_SCHEMACOLLECTION                 0x00000002
 #define DISPID_XMLDOM_SCHEMACOLLECTION_ADD             0x00000003
 #define DISPID_XMLDOM_SCHEMACOLLECTION_GET             0x00000004
 #define DISPID_MX_NSMGR_GETURIFROMNODE                  0x00000587
 #define DISPID_MX_NSMGR_LENGTH                          0x00000588
 
+#define DISPID_MXXML_FILTER                             0x0000058a
+#define DISPID_MXXML_FILTER_CONTENTHANDLER              0x0000058b
+#define DISPID_MXXML_FILTER_DTDHANDLER                  0x0000058c
+#define DISPID_MXXML_FILTER_ENTITYRESOLVER              0x0000058d
+#define DISPID_MXXML_FILTER_ERRORHANDLER                0x0000058e
+#define DISPID_MXXML_FILTER_GETFEATURE                  0x0000058f
+#define DISPID_MXXML_FILTER_GETPROPERTY                 0x00000590
+#define DISPID_MXXML_FILTER_PUTFEATURE                  0x00000591
+#define DISPID_MXXML_FILTER_PUTPROPERTY                 0x00000592
+
 #define DISPID_SOM_VALIDATE                             0x0000058b
 #define DISPID_SOM_VALIDATEONLOAD                       0x0000058c
 #define DISPID_SOM_GETSCHEMA                            0x0000058d
diff --git a/reactos/include/psdk/msxml6.idl b/reactos/include/psdk/msxml6.idl
new file mode 100644 (file)
index 0000000..45cef98
--- /dev/null
@@ -0,0 +1,3421 @@
+/*
+ * Copyright (C) 2005 Vijay Kiran Kamuju
+ * Copyright (C) 2008 Alistair Leslie-Hughes
+ * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include <msxml6did.h>
+#include <idispids.h>
+
+import "unknwn.idl";
+import "objidl.idl";
+import "oaidl.idl";
+
+#ifndef __WIDL__
+#define threading(model)
+#define progid(str)
+#define vi_progid(str)
+#endif
+
+[
+    uuid(f5078f18-c551-11d3-89b9-0000f81fe221),
+    version(6.0),
+    helpstring("Microsoft XML, v6.0")
+]
+library MSXML2
+{
+
+importlib("stdole2.tlb");
+
+interface IXMLDOMImplementation;
+interface IXMLDOMNode;
+interface IXMLDOMDocumentFragment;
+interface IXMLDOMDocument;
+interface IXMLDOMSchemaCollection;
+interface IXMLDOMDocument2;
+interface IXMLDOMNodeList;
+interface IXMLDOMNamedNodeMap;
+interface IXMLDOMCharacterData;
+interface IXMLDOMAttribute;
+interface IXMLDOMElement;
+interface IXMLDOMText;
+interface IXMLDOMComment;
+interface IXMLDOMProcessingInstruction;
+interface IXMLDOMCDATASection;
+interface IXMLDOMDocumentType;
+interface IXMLDOMNotation;
+interface IXMLDOMEntity;
+interface IXMLDOMEntityReference;
+interface IXMLDOMParseError;
+interface IXMLDOMParseErrorCollection;
+interface IXTLRuntime;
+interface IXSLTemplate;
+interface IXSLProcessor;
+
+/* SAX Interfaces */
+interface ISAXAttributes;
+interface ISAXContentHandler;
+interface ISAXDeclHandler;
+interface ISAXDTDHandler;
+interface ISAXEntityResolver;
+interface ISAXErrorHandler;
+interface ISAXLexicalHandler;
+interface ISAXLocator;
+interface ISAXXMLFilter;
+interface ISAXXMLReader;
+
+interface IVBSAXAttributes;
+interface IVBSAXContentHandler;
+interface IVBSAXDeclHandler;
+interface IVBSAXDTDHandler;
+interface IVBSAXEntityResolver;
+interface IVBSAXErrorHandler;
+interface IVBSAXLexicalHandler;
+interface IVBSAXLocator;
+interface IVBSAXXMLFilter;
+interface IVBSAXXMLReader;
+
+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")
+
+cpp_quote("#ifndef __WIDL_XMLDOM_H")
+typedef enum tagDOMNodeType
+{
+    NODE_INVALID               = 0,
+    NODE_ELEMENT               = 1,
+    NODE_ATTRIBUTE             = 2,
+    NODE_TEXT                  = 3,
+    NODE_CDATA_SECTION         = 4,
+    NODE_ENTITY_REFERENCE      = 5,
+    NODE_ENTITY                = 6,
+    NODE_PROCESSING_INSTRUCTION = 7,
+    NODE_COMMENT               = 8,
+    NODE_DOCUMENT              = 9,
+    NODE_DOCUMENT_TYPE         = 10,
+    NODE_DOCUMENT_FRAGMENT     = 11,
+    NODE_NOTATION              = 12
+} 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,
+dual,
+oleautomation,
+uuid (2933BF80-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMNode : IDispatch
+{
+    [propget, id(DISPID_DOM_NODE_NODENAME)]
+    HRESULT nodeName([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_NODE_NODEVALUE)]
+    HRESULT nodeValue([retval, out] VARIANT *var1);
+
+    [propput, id(DISPID_DOM_NODE_NODEVALUE)]
+    HRESULT nodeValue([in] VARIANT var1);
+
+    [propget, id(DISPID_DOM_NODE_NODETYPE)]
+    HRESULT nodeType([retval, out] DOMNodeType *domNodeType);
+
+    [propget, id(DISPID_DOM_NODE_PARENTNODE)]
+    HRESULT parentNode([retval, out] IXMLDOMNode **parent);
+
+    [propget, id(DISPID_DOM_NODE_CHILDNODES)]
+    HRESULT childNodes([retval, out] IXMLDOMNodeList **outList);
+
+    [propget, id(DISPID_DOM_NODE_FIRSTCHILD)]
+    HRESULT firstChild([retval, out] IXMLDOMNode **domNode);
+
+    [propget, id(DISPID_DOM_NODE_LASTCHILD)]
+    HRESULT lastChild([retval, out] IXMLDOMNode **domNode);
+
+    [propget, id(DISPID_DOM_NODE_PREVIOUSSIBLING)]
+    HRESULT previousSibling([retval, out] IXMLDOMNode **domNode);
+
+    [propget, id(DISPID_DOM_NODE_NEXTSIBLING)]
+    HRESULT nextSibling([retval, out] IXMLDOMNode **domNode);
+
+    [propget, id(DISPID_DOM_NODE_ATTRIBUTES)]
+    HRESULT attributes([retval, out] IXMLDOMNamedNodeMap **attributeMap);
+
+    [id(DISPID_DOM_NODE_INSERTBEFORE)]
+    HRESULT insertBefore(
+        [in] IXMLDOMNode *newNode,
+        [in] VARIANT var1,
+        [retval, out] IXMLDOMNode **outOldNode);
+
+    [id(DISPID_DOM_NODE_REPLACECHILD)]
+    HRESULT replaceChild(
+        [in] IXMLDOMNode *newNode,
+        [in] IXMLDOMNode *oldNode,
+        [retval, out] IXMLDOMNode **outOldNode);
+
+    [id(DISPID_DOM_NODE_REMOVECHILD)]
+    HRESULT removeChild(
+        [in] IXMLDOMNode *domNode,
+        [retval, out] IXMLDOMNode **oldNode);
+
+    [id(DISPID_DOM_NODE_APPENDCHILD)]
+    HRESULT appendChild(
+        [in] IXMLDOMNode *newNode,
+        [retval, out] IXMLDOMNode **outNewNode);
+
+    [id(DISPID_DOM_NODE_HASCHILDNODES)]
+    HRESULT hasChildNodes(
+        [retval, out] VARIANT_BOOL *pbool);
+
+    [propget, id(DISPID_DOM_NODE_OWNERDOC)]
+    HRESULT ownerDocument([retval, out] IXMLDOMDocument **domDocument);
+
+    [id(DISPID_DOM_NODE_CLONENODE)]
+    HRESULT cloneNode(
+        [in] VARIANT_BOOL pbool,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [propget, id(DISPID_XMLDOM_NODE_STRINGTYPE)]
+    HRESULT nodeTypeString([retval, out] BSTR *p);
+
+    [propget, id(DISPID_XMLDOM_NODE_TEXT)]
+    HRESULT text([retval, out] BSTR *p);
+
+    [propput, id(DISPID_XMLDOM_NODE_TEXT)]
+    HRESULT text([in] BSTR p);
+
+    [propget, id(DISPID_XMLDOM_NODE_SPECIFIED)]
+    HRESULT specified([retval, out] VARIANT_BOOL *pbool);
+
+    [propget, id(DISPID_XMLDOM_NODE_DEFINITION)]
+    HRESULT definition([retval,out] IXMLDOMNode **domNode);
+
+    [propget, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
+    HRESULT nodeTypedValue([retval, out] VARIANT *var1);
+
+    [propput, id(DISPID_XMLDOM_NODE_NODETYPEDVALUE)]
+    HRESULT nodeTypedValue([in] VARIANT var1);
+
+    [propget, id(DISPID_XMLDOM_NODE_DATATYPE)]
+    HRESULT dataType([retval, out] VARIANT *var1);
+
+    [propput, id(DISPID_XMLDOM_NODE_DATATYPE)]
+    HRESULT dataType([in] BSTR p);
+
+    [propget, id(DISPID_XMLDOM_NODE_XML)]
+    HRESULT xml([retval, out] BSTR *p);
+
+    [id(DISPID_XMLDOM_NODE_TRANSFORMNODE)]
+    HRESULT transformNode(
+        [in] IXMLDOMNode *domNode,
+        [retval, out] BSTR *p);
+
+    [id(DISPID_XMLDOM_NODE_SELECTNODES)]
+    HRESULT selectNodes(
+        [in] BSTR p,
+        [retval, out] IXMLDOMNodeList **outList);
+
+    [id(DISPID_XMLDOM_NODE_SELECTSINGLENODE)]
+    HRESULT selectSingleNode(
+        [in] BSTR p,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [propget,id(DISPID_XMLDOM_NODE_PARSED)]
+    HRESULT parsed([retval, out] VARIANT_BOOL *pbool);
+
+    [propget, id(DISPID_XMLDOM_NODE_NAMESPACE)]
+    HRESULT namespaceURI([retval, out] BSTR *p);
+
+    [propget, id(DISPID_XMLDOM_NODE_PREFIX)]
+    HRESULT prefix([retval, out] BSTR *p);
+
+    [propget, id(DISPID_XMLDOM_NODE_BASENAME)]
+    HRESULT baseName([retval, out] BSTR *p);
+
+    [id(DISPID_XMLDOM_NODE_TRANSFORMNODETOOBJECT)]
+    HRESULT transformNodeToObject(
+        [in] IXMLDOMNode *domNode,
+        [in] VARIANT var1);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF81-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMDocument : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_DOCUMENT_DOCTYPE)]
+    HRESULT doctype([retval, out] IXMLDOMDocumentType **docType);
+
+    [propget, id(DISPID_DOM_DOCUMENT_IMPLEMENTATION)]
+    HRESULT implementation([retval, out] IXMLDOMImplementation **impl);
+
+    [propget, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
+    HRESULT documentElement([retval, out] IXMLDOMElement **domElement);
+
+    [propputref, id(DISPID_DOM_DOCUMENT_DOCUMENTELEMENT)]
+    HRESULT documentElement([in] IXMLDOMElement *domElement);
+
+    [id(DISPID_DOM_DOCUMENT_CREATEELEMENT)]
+    HRESULT createElement(
+        [in] BSTR p,
+        [retval, out] IXMLDOMElement **domElement);
+
+    [id(DISPID_DOM_DOCUMENT_CREATEDOCUMENTFRAGMENT)]
+    HRESULT createDocumentFragment(
+        [retval, out] IXMLDOMDocumentFragment **docFrag);
+
+    [id(DISPID_DOM_DOCUMENT_CREATETEXTNODE)]
+    HRESULT createTextNode(
+        [in] BSTR p,
+        [retval, out] IXMLDOMText **text);
+
+    [id(DISPID_DOM_DOCUMENT_CREATECOMMENT)]
+    HRESULT createComment(
+        [in] BSTR p,
+        [retval, out] IXMLDOMComment **comment);
+
+    [id(DISPID_DOM_DOCUMENT_CREATECDATASECTION)]
+    HRESULT createCDATASection(
+        [in] BSTR p,
+        [retval, out] IXMLDOMCDATASection **cdata);
+
+    [id(DISPID_DOM_DOCUMENT_CREATEPROCESSINGINSTRUCTION)]
+    HRESULT createProcessingInstruction(
+        [in] BSTR target,
+        [in] BSTR data,
+        [retval, out] IXMLDOMProcessingInstruction **pi);
+
+    [id(DISPID_DOM_DOCUMENT_CREATEATTRIBUTE)]
+    HRESULT createAttribute(
+        [in] BSTR p,
+        [retval, out] IXMLDOMAttribute **attribute);
+
+    [id(DISPID_DOM_DOCUMENT_CREATEENTITYREFERENCE)]
+    HRESULT createEntityReference(
+        [in] BSTR p,
+        [retval, out] IXMLDOMEntityReference **entityRef);
+
+    [id(DISPID_DOM_DOCUMENT_GETELEMENTSBYTAGNAME)]
+    HRESULT getElementsByTagName(
+        [in] BSTR p,
+        [retval, out] IXMLDOMNodeList **resultList);
+
+    [id(DISPID_XMLDOM_DOCUMENT_CREATENODE)]
+    HRESULT createNode(
+        [in] VARIANT var,
+        [in] BSTR name,
+        [in] BSTR uri,
+        [retval, out] IXMLDOMNode **node);
+
+    [id(DISPID_XMLDOM_DOCUMENT_NODEFROMID)]
+    HRESULT nodeFromID(
+        [in] BSTR id,
+        [retval, out] IXMLDOMNode **node);
+
+    [id(DISPID_XMLDOM_DOCUMENT_LOAD)]
+    HRESULT load(
+        [in] VARIANT var1,
+        [retval, out] VARIANT_BOOL *pbool);
+
+    [propget, id(DISPID_READYSTATE)]
+    HRESULT readyState([retval, out] LONG *value);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT_PARSEERROR)]
+    HRESULT parseError([retval, out] IXMLDOMParseError **err);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT_URL)]
+    HRESULT url([retval, out] BSTR *p);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
+    HRESULT async([retval, out] VARIANT_BOOL *pbool);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_ASYNC)]
+    HRESULT async([in] VARIANT_BOOL pbool);
+
+    [id(DISPID_XMLDOM_DOCUMENT_ABORT)]
+    HRESULT abort();
+
+    [id(DISPID_XMLDOM_DOCUMENT_LOADXML)]
+    HRESULT loadXML(
+        [in] BSTR p,
+        [out, retval] VARIANT_BOOL *pbool);
+
+    [id(DISPID_XMLDOM_DOCUMENT_SAVE)]
+    HRESULT save(
+        [in] VARIANT var1);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
+    HRESULT validateOnParse([retval, out] VARIANT_BOOL *pbool);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_VALIDATE)]
+    HRESULT validateOnParse([in] VARIANT_BOOL pbool);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
+    HRESULT resolveExternals([retval,out] VARIANT_BOOL *pbool);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_RESOLVENAMESPACE)]
+    HRESULT resolveExternals([in] VARIANT_BOOL pbool);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
+    HRESULT preserveWhiteSpace([retval,out] VARIANT_BOOL *pbool);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_PRESERVEWHITESPACE)]
+    HRESULT preserveWhiteSpace([in] VARIANT_BOOL pbool);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_ONREADYSTATECHANGE)]
+    HRESULT onreadystatechange([in] VARIANT var1);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_ONDATAAVAILABLE)]
+    HRESULT ondataavailable([in] VARIANT var1);
+
+    [propput, id(DISPID_XMLDOM_DOCUMENT_ONTRANSFORMNODE)]
+    HRESULT ontransformnode([in] VARIANT var1);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (373984c8-b845-449b-91e7-45ac83036ade)
+]
+interface IXMLDOMSchemaCollection : IDispatch
+{
+    [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADD)]
+    HRESULT add(
+        [in] BSTR uri,
+        [in] VARIANT var);
+
+    [id(DISPID_XMLDOM_SCHEMACOLLECTION_GET)]
+    HRESULT get(
+        [in] BSTR uri,
+        [retval, out] IXMLDOMNode **node);
+
+    [id(DISPID_XMLDOM_SCHEMACOLLECTION_REMOVE)]
+    HRESULT remove(
+        [in] BSTR uri);
+
+    [propget, id(DISPID_XMLDOM_SCHEMACOLLECTION_LENGTH)]
+    HRESULT length(
+        [retval, out] LONG *length);
+
+    [propget, id(DISPID_VALUE)]
+    HRESULT namespaceURI([in] LONG index, [out, retval] BSTR *len);
+
+    [id(DISPID_XMLDOM_SCHEMACOLLECTION_ADDCOLLECTION)]
+    HRESULT addCollection(
+        [in] IXMLDOMSchemaCollection *otherCollection);
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **ppUnk);
+}
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    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,
+dual,
+oleautomation,
+uuid (2933BF95-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMDocument2 : IXMLDOMDocument
+{
+    [propget, id(DISPID_XMLDOM_DOCUMENT2_NAMESPACES)]
+    HRESULT namespaces([retval, out] IXMLDOMSchemaCollection **schemaCollection);
+
+    [propget, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
+    HRESULT schemas([retval, out] VARIANT *var1);
+
+    [propputref, id(DISPID_XMLDOM_DOCUMENT2_SCHEMAS)]
+    HRESULT schemas([in] VARIANT var1);
+
+    [id(DISPID_XMLDOM_DOCUMENT2_VALIDATE)]
+    HRESULT validate(
+        [retval, out] IXMLDOMParseError **err);
+
+    [id(DISPID_XMLDOM_DOCUMENT2_SETPROPERTY)]
+    HRESULT setProperty(
+        [in] BSTR p,
+        [in] VARIANT var);
+
+    [id(DISPID_XMLDOM_DOCUMENT2_GETPROPERTY)]
+    HRESULT getProperty(
+        [in] BSTR p,
+        [retval, out] VARIANT *var);
+}
+
+[
+    local,
+    object,
+    dual,
+    uuid(2933bf96-7b36-11d2-b20e-00c04f983e60),
+    oleautomation,
+]
+interface IXMLDOMDocument3 : IXMLDOMDocument2
+{
+    [id(DISPID_XMLDOM_DOCUMENT3_VALIDATENODE)]
+    HRESULT validateNode(
+        [in] IXMLDOMNode *node,
+        [out, retval] IXMLDOMParseError **error);
+
+    [id(DISPID_XMLDOM_DOCUMENT3_IMPORTNODE)]
+    HRESULT importNode(
+        [in] IXMLDOMNode *node,
+        [in] VARIANT_BOOL deep,
+        [out, retval] IXMLDOMNode **clone);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF82-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMNodeList : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
+
+    [propget, id(DISPID_DOM_NODELIST_LENGTH)]
+    HRESULT length([retval, out] LONG *lLength);
+
+    [id(DISPID_XMLDOM_NODELIST_NEXTNODE)]
+    HRESULT nextNode(
+        [retval, out] IXMLDOMNode **outNode);
+
+    [id(DISPID_XMLDOM_NODELIST_RESET)]
+    HRESULT reset();
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **ppUnk);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (AA634FC7-5888-44a7-A257-3A47150D3A0E)
+]
+interface IXMLDOMSelection : IXMLDOMNodeList
+{
+    [propget, id(DISPID_XMLDOM_SELECTION_EXPR)]
+    HRESULT expr([retval, out] BSTR *p);
+
+    [propput, id(DISPID_XMLDOM_SELECTION_EXPR)]
+    HRESULT expr([in] BSTR p);
+
+    [propget, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
+    HRESULT context([retval, out] IXMLDOMNode **ppNode);
+
+    [propputref, id(DISPID_XMLDOM_SELECTION_CONTEXT)]
+    HRESULT context([in] IXMLDOMNode * pNode);
+
+    [id(DISPID_XMLDOM_SELECTION_PEEKNODE)]
+    HRESULT peekNode(
+        [retval, out] IXMLDOMNode **ppNode);
+
+    [id(DISPID_XMLDOM_SELECTION_MATCHES)]
+    HRESULT matches(
+        [in] IXMLDOMNode *pNode,
+        [retval, out] IXMLDOMNode **ppNode);
+
+    [id(DISPID_XMLDOM_SELECTION_REMOVENEXT)]
+    HRESULT removeNext(
+        [retval, out] IXMLDOMNode **ppNode);
+
+    [id(DISPID_XMLDOM_SELECTION_REMOVEALL)]
+    HRESULT removeAll();
+
+    [id(DISPID_XMLDOM_SELECTION_CLONE)]
+    HRESULT clone(
+        [retval, out] IXMLDOMSelection **ppNode);
+
+    [id(DISPID_XMLDOM_SELECTION_GETPROPERTY)]
+    HRESULT getProperty(
+        [in] BSTR p,
+        [retval, out] VARIANT * var);
+
+    [id(DISPID_XMLDOM_SELECTION_SETPROPERTY)]
+    HRESULT setProperty(
+        [in] BSTR p,
+        [in] VARIANT var);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF83-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMNamedNodeMap : IDispatch
+{
+    [id(DISPID_DOM_NAMEDNODEMAP_GETNAMEDITEM)]
+    HRESULT getNamedItem(
+        [in] BSTR p,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [id(DISPID_DOM_NAMEDNODEMAP_SETNAMEDITEM)]
+    HRESULT setNamedItem(
+        [in] IXMLDOMNode *newNode,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [id(DISPID_DOM_NAMEDNODEMAP_REMOVENAMEDITEM)]
+    HRESULT removeNamedItem(
+        [in] BSTR p,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [propget, id(DISPID_VALUE)]
+    HRESULT item([in] LONG lIndex, [retval, out] IXMLDOMNode **outNode);
+
+    [propget, id(DISPID_DOM_NODELIST_LENGTH)]
+    HRESULT length([retval, out] LONG *lLength);
+
+    [id(DISPID_XMLDOM_NAMEDNODEMAP_GETQUALIFIEDITEM)]
+    HRESULT getQualifiedItem(
+        [in] BSTR name,
+        [in] BSTR uri,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [id(DISPID_XMLDOM_NAMEDNODEMAP_REMOVEQUALIFIEDITEM)]
+    HRESULT removeQualifiedItem(
+        [in] BSTR name,
+        [in] BSTR uri,
+        [retval, out] IXMLDOMNode **outNode);
+
+    [id(DISPID_XMLDOM_NAMEDNODEMAP_NEXTNODE)]
+    HRESULT nextNode(
+        [retval, out] IXMLDOMNode **outNode);
+
+    [id(DISPID_XMLDOM_NAMEDNODEMAP_RESET)]
+    HRESULT reset();
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _newEnum([retval, out] IUnknown **ppUnk);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa413-272f-11d2-836f-0000f87a7782)
+]
+interface IXMLDOMDocumentFragment : IXMLDOMNode
+{
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF84-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMCharacterData : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_DATA_DATA)]
+    HRESULT data([retval, out] BSTR *p);
+
+    [propput, id(DISPID_DOM_DATA_DATA)]
+    HRESULT data([in] BSTR data);
+
+    [propget, id(DISPID_DOM_DATA_LENGTH)]
+    HRESULT length([retval, out] LONG *len);
+
+    [id(DISPID_DOM_DATA_SUBSTRING)]
+    HRESULT substringData(
+        [in] LONG offset,
+        [in] LONG count,
+        [retval, out] BSTR *p);
+
+    [id(DISPID_DOM_DATA_APPEND)]
+    HRESULT appendData(
+        [in] BSTR p);
+
+    [id(DISPID_DOM_DATA_INSERT)]
+    HRESULT insertData(
+        [in] LONG offset,
+        [in] BSTR p);
+
+    [id(DISPID_DOM_DATA_DELETE)]
+    HRESULT deleteData(
+        [in] LONG offset,
+        [in] LONG count);
+
+    [id(DISPID_DOM_DATA_REPLACE)]
+    HRESULT replaceData(
+        [in] LONG offset,
+        [in] LONG count,
+        [in] BSTR p);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF85-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMAttribute : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_ATTRIBUTE_GETNAME)]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_ATTRIBUTE_VALUE)]
+    HRESULT value([retval, out] VARIANT *var1);
+
+    [propput, id(DISPID_DOM_ATTRIBUTE_VALUE)]
+    HRESULT value([in] VARIANT var1);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF86-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMElement : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_ELEMENT_GETTAGNAME)]
+    HRESULT tagName([retval, out] BSTR *p);
+
+    [id(DISPID_DOM_ELEMENT_GETATTRIBUTE)]
+    HRESULT getAttribute(
+        [in] BSTR p,
+        [retval, out] VARIANT *var);
+
+    [id(DISPID_DOM_ELEMENT_SETATTRIBUTE)]
+    HRESULT setAttribute(
+        [in] BSTR p,
+        [in] VARIANT var);
+
+    [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTE)]
+    HRESULT removeAttribute(
+        [in] BSTR p);
+
+    [id(DISPID_DOM_ELEMENT_GETATTRIBUTENODE)]
+    HRESULT getAttributeNode(
+        [in] BSTR p,
+        [retval, out] IXMLDOMAttribute **attributeNode);
+
+    [id(DISPID_DOM_ELEMENT_SETATTRIBUTENODE)]
+    HRESULT setAttributeNode(
+        [in] IXMLDOMAttribute *domAttribute,
+        [retval, out] IXMLDOMAttribute **attributeNode);
+
+    [id(DISPID_DOM_ELEMENT_REMOVEATTRIBUTENODE)]
+    HRESULT removeAttributeNode(
+        [in] IXMLDOMAttribute *domAttribute,
+        [retval, out] IXMLDOMAttribute **attributeNode);
+
+    [id(DISPID_DOM_ELEMENT_GETELEMENTSBYTAGNAME)]
+    HRESULT getElementsByTagName(
+        [in] BSTR p,
+        [retval, out] IXMLDOMNodeList **resultList);
+
+    [id(DISPID_DOM_ELEMENT_NORMALIZE)]
+    HRESULT normalize();
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF87-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMText : IXMLDOMCharacterData
+{
+    [id(DISPID_DOM_TEXT_SPLITTEXT)]
+    HRESULT splitText(
+        [in] LONG offset,
+        [retval, out] IXMLDOMText **txtNode);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF88-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMComment : IXMLDOMCharacterData
+{
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF89-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMProcessingInstruction : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_PI_TARGET)]
+    HRESULT target([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_PI_DATA)]
+    HRESULT data([retval, out] BSTR *p);
+
+    [propput, id(DISPID_DOM_PI_DATA)]
+    HRESULT data([in] BSTR p);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF8A-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMCDATASection : IXMLDOMText
+{
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF8B-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMDocumentType : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_DOCUMENTTYPE_NAME)]
+    HRESULT name([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_DOCUMENTTYPE_ENTITIES)]
+    HRESULT entities([retval, out] IXMLDOMNamedNodeMap **entityMap);
+
+    [propget, id(DISPID_DOM_DOCUMENTTYPE_NOTATIONS)]
+    HRESULT notations([retval, out] IXMLDOMNamedNodeMap **notationMap);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF8C-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMNotation : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_NOTATION_PUBLICID)]
+    HRESULT publicId([retval, out] VARIANT *id);
+
+    [propget, id(DISPID_DOM_NOTATION_SYSTEMID)]
+    HRESULT systemId([retval, out] VARIANT *id);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF8D-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMEntity : IXMLDOMNode
+{
+    [propget, id(DISPID_DOM_ENTITY_PUBLICID)]
+    HRESULT publicId([retval, out] VARIANT *id1);
+
+    [propget, id(DISPID_DOM_ENTITY_SYSTEMID)]
+    HRESULT systemId([retval, out] VARIANT *id1);
+
+    [propget, id(DISPID_DOM_ENTITY_NOTATIONNAME)]
+    HRESULT notationName([retval, out] BSTR *p);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF8E-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMEntityReference : IXMLDOMNode
+{
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF8F-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXMLDOMImplementation : IDispatch
+{
+    [id(DISPID_DOM_IMPLEMENTATION_HASFEATURE)]
+    HRESULT hasFeature(
+        [in] BSTR feature,
+        [in] BSTR version,
+        [retval, out] VARIANT_BOOL *pbool);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa425-272f-11d2-836f-0000f87a7782)
+]
+interface IXTLRuntime : IXMLDOMNode
+{
+    [id(DISPID_XTLRUNTIME_UNIQUEID)]
+    HRESULT uniqueID(
+        [in]IXMLDOMNode *pNode,
+        [retval, out]LONG *pID);
+
+    [id(DISPID_XTLRUNTIME_DEPTH)]
+    HRESULT depth(
+        [in] IXMLDOMNode *pNode,
+        [retval, out]LONG * pDepth);
+
+    [id(DISPID_XTLRUNTIME_CHILDNUMBER)]
+    HRESULT childNumber(
+        [in]IXMLDOMNode *pNode,
+        [retval, out] LONG *pNumber);
+
+    [id(DISPID_XTLRUNTIME_ANCESTORCHILDNUMBER)]
+    HRESULT ancestorChildNumber(
+        [in]BSTR bstr,
+        [in]IXMLDOMNode *pNode,
+        [retval, out]LONG *pNumber);
+
+    [id(DISPID_XTLRUNTIME_ABSOLUTECHILDNUMBER)]
+    HRESULT absoluteChildNumber(
+        [in]IXMLDOMNode *pNode,
+        [retval, out]LONG *pNumber);
+
+    [id(DISPID_XTLRUNTIME_FORMATINDEX)]
+    HRESULT formatIndex(
+        [in] LONG lIndex,
+        [in] BSTR bstr,
+        [retval, out]BSTR *pbstr);
+
+    [id(DISPID_XTLRUNTIME_FORMATNUMBER)]
+    HRESULT formatNumber(
+        [in] double dblNumber,
+        [in] BSTR bstr,
+        [retval, out]BSTR *pbstr);
+
+    [id(DISPID_XTLRUNTIME_FORMATDATE)]
+    HRESULT formatDate(
+        [in] VARIANT var1,
+        [in] BSTR bstr,
+        [optional, in] VARIANT var2,
+        [retval, out]BSTR *pbstr);
+
+    [id(DISPID_XTLRUNTIME_FORMATTIME)]
+    HRESULT formatTime(
+        [in] VARIANT var1,
+        [in] BSTR bstr,
+        [optional, in] VARIANT var2,
+        [retval, out]BSTR *pbstr);
+
+}
+
+[
+    uuid(3efaa427-272f-11d2-836f-0000f87a7782)
+]
+dispinterface XMLDOMDocumentEvents
+{
+    properties:
+    methods:
+    [id (DISPID_XMLDOMEVENT_ONDATAAVAILABLE)]
+    HRESULT ondataavailable();
+
+    [id (DISPID_XMLDOMEVENT_ONREADYSTATECHANGE)]
+    HRESULT onreadystatechange();
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF92-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXSLProcessor : IDispatch
+{
+    [propput, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
+    HRESULT input([in] VARIANT var);
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_INPUT)]
+    HRESULT input([retval, out] VARIANT *var);
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_XSLTEMPLATE)]
+    HRESULT ownerTemplate([retval, out] IXSLTemplate **ppTemplate);
+
+    [id(DISPID_XMLDOM_PROCESSOR_SETSTARTMODE)]
+    HRESULT setStartMode(
+        [in] BSTR p,
+        [in, defaultvalue("")] BSTR uri);
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODE)]
+    HRESULT startMode([retval, out] BSTR *p);
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_STARTMODEURI)]
+    HRESULT startModeURI([retval, out] BSTR *uri);
+
+    [propput, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
+    HRESULT output([in] VARIANT var);
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_OUTPUT)]
+    HRESULT output([retval, out] VARIANT *var);
+
+    [id(DISPID_XMLDOM_PROCESSOR_TRANSFORM)]
+    HRESULT transform(
+        [retval, out] VARIANT_BOOL *pbool);
+
+    [id(DISPID_XMLDOM_PROCESSOR_RESET)]
+    HRESULT reset();
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_READYSTATE)]
+    HRESULT readyState([retval, out] LONG *pstate);
+
+    [id(DISPID_XMLDOM_PROCESSOR_ADDPARAMETER)]
+    HRESULT addParameter(
+        [in] BSTR p,
+        [in] VARIANT var,
+        [in, defaultvalue("")] BSTR uri);
+
+    [id(DISPID_XMLDOM_PROCESSOR_ADDOBJECT)]
+    HRESULT addObject(
+        [in] IDispatch* obj,
+        [in] BSTR uri);
+
+    [propget, id(DISPID_XMLDOM_PROCESSOR_STYLESHEET)]
+    HRESULT stylesheet([retval, out] IXMLDOMNode **node);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (2933BF93-7B36-11d2-B20E-00C04F983E60)
+]
+interface IXSLTemplate : IDispatch
+{
+    [propputref, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
+    HRESULT stylesheet([in] IXMLDOMNode *node);
+
+    [propget, id(DISPID_XMLDOM_TEMPLATE_STYLESHEET)]
+    HRESULT stylesheet([retval, out] IXMLDOMNode **node);
+
+    [id(DISPID_XMLDOM_TEMPLATE_CREATEPROCESSOR)]
+    HRESULT createProcessor(
+        [retval, out] IXSLProcessor **ppProcessor);
+}
+
+[
+    object,
+    uuid(ED8C108D-4349-11D2-91A4-00C04F7969E8),
+    odl,
+    dual,
+    oleautomation,
+    pointer_default(unique)
+]
+interface IXMLHTTPRequest : IDispatch
+{
+    [id(1)]
+    HRESULT open([in] BSTR bstrMethod, [in] BSTR bstrUrl, [in, optional] VARIANT varAsync,
+                 [in,optional] VARIANT username, [in,optional] VARIANT password);
+
+    [id(2)]
+    HRESULT setRequestHeader([in] BSTR bstrHeader, [in] BSTR bstrValue);
+
+    [id(3)]
+    HRESULT getResponseHeader([in] BSTR bstrHeader, [out, retval] BSTR * value);
+
+    [id(4)]
+    HRESULT getAllResponseHeaders([out, retval] BSTR * pbstrHeaders);
+
+    [id(5)]
+    HRESULT send([in, optional] VARIANT body);
+
+    [id(6)]
+    HRESULT abort();
+
+    [propget, id(7)]
+    HRESULT status([out, retval] LONG *pStatus);
+
+    [propget, id(8)]
+    HRESULT statusText([out, retval] BSTR *pStatus);
+
+    [propget, id(9)]
+    HRESULT responseXML([out, retval] IDispatch **pBody);
+
+    [propget, id(10)]
+    HRESULT responseText([out, retval] BSTR *pBody);
+
+    [propget, id(11)]
+    HRESULT responseBody([out, retval] VARIANT *pBody);
+
+    [propget, id(12)]
+    HRESULT responseStream([out, retval] VARIANT *pBody);
+
+    [propget, id(13)]
+    HRESULT readyState([out, retval] LONG *pState);
+
+    [propput, id(14)]
+    HRESULT onreadystatechange([in] IDispatch *pReadyStateSink);
+};
+
+[
+object,
+dual,
+oleautomation,
+uuid(2e9196bf-13ba-4dd4-91ca-6c571f281495)
+]
+interface IServerXMLHTTPRequest : IXMLHTTPRequest
+{
+    typedef enum _SERVERXMLHTTP_OPTION
+    {
+        SXH_OPTION_URL = -1,
+        SXH_OPTION_URL_CODEPAGE,
+        SXH_OPTION_ESCAPE_PERCENT_IN_URL,
+        SXH_OPTION_IGNORE_SERVER_SSL_CERT_ERROR_FLAGS,
+        SXH_OPTION_SELECT_CLIENT_SSL_CERT
+    } SERVERXMLHTTP_OPTION;
+
+    [id(15)]
+    HRESULT setTimeouts(
+        [in] long resolveTimeout,
+        [in] long connectTimeout,
+        [in] long sendTimeout,
+        [in] long receiveTimeout);
+
+    [id(16)]
+    HRESULT waitForResponse(
+        [in, optional] VARIANT timeoutInSeconds,
+        [out, retval] VARIANT_BOOL * isSuccessful);
+
+    [id(17)]
+    HRESULT getOption(
+        [in] SERVERXMLHTTP_OPTION option,
+        [out, retval] VARIANT * value);
+
+    [id(18)]
+    HRESULT setOption(
+        [in] SERVERXMLHTTP_OPTION option,
+        [in] VARIANT value);
+}
+
+[
+object,
+dual,
+oleautomation,
+uuid(2e01311b-c322-4b0a-bd77-b90cfdc8dce7)
+]
+interface IServerXMLHTTPRequest2 : IServerXMLHTTPRequest
+{
+    typedef enum _SXH_PROXY_SETTING
+    {
+        SXH_PROXY_SET_DEFAULT = 0,
+        SXH_PROXY_SET_PRECONFIG = 0,
+        SXH_PROXY_SET_DIRECT,
+        SXH_PROXY_SET_PROXY
+    } SXH_PROXY_SETTING;
+
+    [id(19)]
+    HRESULT setProxy(
+        [in] SXH_PROXY_SETTING proxySetting,
+        [in, optional] VARIANT varProxyServer,
+        [in, optional] VARIANT varBypassList);
+
+    [id(20)]
+    HRESULT setProxyCredentials(
+        [in] BSTR bstrUserName,
+        [in] BSTR bstrPassword);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa426-272f-11d2-836f-0000f87a7782)
+]
+interface IXMLDOMParseError : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT errorCode([retval, out] LONG *errCode);
+
+    [propget, id(DISPID_DOM_ERROR_URL)]
+    HRESULT url([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_ERROR_REASON)]
+    HRESULT reason([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_ERROR_SRCTEXT)]
+    HRESULT srcText([retval, out] BSTR *p);
+
+    [propget, id(DISPID_DOM_ERROR_LINE)]
+    HRESULT line([retval, out] LONG *lineNo);
+
+    [propget, id(DISPID_DOM_ERROR_LINEPOS)]
+    HRESULT linepos([retval, out] LONG * linePos);
+
+    [propget, id(DISPID_DOM_ERROR_FILEPOS)]
+    HRESULT filepos([retval, out] LONG * filePos);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa428-272f-11d2-836f-0000f87a7782)
+]
+interface IXMLDOMParseError2 : IXMLDOMParseError
+{
+    [propget, id(DISPID_DOM_ERROR2_ERRORXPATH)]
+    HRESULT errorXPath([retval, out] BSTR *xpathexpr);
+
+    [propget, id(DISPID_DOM_ERROR2_ALLERRORS)]
+    HRESULT allErrors([retval, out] IXMLDOMParseErrorCollection **allErrors);
+
+    [id(DISPID_DOM_ERROR2_ERRORPARAMETERS)]
+    HRESULT errorParameters(
+        [in] long index,
+        [retval, out] BSTR *param);
+
+    [propget, id(DISPID_DOM_ERROR2_ERRORPARAMETERSCOUNT)]
+    HRESULT errorParametersCount([retval, out] long *count);
+}
+
+[
+local,
+object,
+dual,
+oleautomation,
+uuid (3efaa429-272f-11d2-836f-0000f87a7782)
+]
+interface IXMLDOMParseErrorCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT item(
+        [in] long index,
+        [retval, out] IXMLDOMParseError2 **error);
+
+    [propget, id(DISPID_DOM_ERRORCOLLECTION_LENGTH)]
+    HRESULT length( [retval, out] long *length);
+
+    [propget, id(DISPID_DOM_ERRORCOLLECTION_NEXT)]
+    HRESULT next( [retval, out] IXMLDOMParseError2 **error);
+
+    [id(DISPID_DOM_ERRORCOLLECTION_RESET)]
+    HRESULT reset();
+
+    [propget, hidden, restricted, id(DISPID_NEWENUM)]
+    HRESULT _newEnum( [retval, out] IUnknown **ppunk);
+}
+
+[
+    uuid(F6D90F11-9C73-11D3-B32E-00C04F990BB4)
+]
+coclass DOMDocument
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(f5078f1b-c551-11d3-89b9-0000f81fe221)
+]
+coclass DOMDocument26
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(f5078f32-c551-11d3-89b9-0000f81fe221)
+]
+coclass DOMDocument30
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(88d969c0-f192-11d4-a65f-0040963251e5)
+]
+coclass DOMDocument40
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    helpstring("XML DOM Document 6.0"),
+    progid("Msxml2.DOMDocument.6.0"),
+    threading(both),
+    uuid(88d96a05-f192-11d4-a65f-0040963251e5)
+]
+coclass DOMDocument60
+{
+    [default] interface IXMLDOMDocument3;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(F6D90F12-9C73-11D3-B32E-00C04F990BB4)
+]
+coclass FreeThreadedDOMDocument
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(f5078f1c-c551-11d3-89b9-0000f81fe221)
+]
+coclass FreeThreadedDOMDocument26
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(f5078f33-c551-11d3-89b9-0000f81fe221)
+]
+coclass FreeThreadedDOMDocument30
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(88d969c1-f192-11d4-a65f-0040963251e5)
+]
+coclass FreeThreadedDOMDocument40
+{
+    [default] interface IXMLDOMDocument2;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    helpstring("Free threaded XML DOM Document 6.0"),
+    progid("Msxml2.FreeThreadedDOMDocument.6.0"),
+    threading(both),
+    uuid(88d96a06-f192-11d4-a65f-0040963251e5),
+]
+coclass FreeThreadedDOMDocument60
+{
+    [default] interface IXMLDOMDocument3;
+    [default, source] dispinterface XMLDOMDocumentEvents;
+}
+
+[
+    uuid(f6d90f16-9c73-11d3-b32e-00c04f990bb4)
+]
+coclass XMLHTTP
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(f5078f1e-c551-11d3-89b9-0000f81fe221)
+]
+coclass XMLHTTP26
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(f5078f35-c551-11d3-89b9-0000f81fe221)
+]
+coclass XMLHTTP30
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(88d969c5-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLHTTP40
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    helpstring("XML HTTP 6.0"),
+    progid("Msxml2.XMLHTTP.6.0"),
+    threading(apartment),
+    uuid(88d96a0a-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLHTTP60
+{
+    [default] interface IXMLHTTPRequest;
+}
+
+[
+    uuid(afba6b42-5692-48ea-8141-dc517dcf0ef1)
+]
+coclass ServerXMLHTTP
+{
+    [default] interface IServerXMLHTTPRequest;
+}
+
+[
+    uuid(afb40ffd-b609-40a3-9828-f88bbe11e4e3)
+]
+coclass ServerXMLHTTP30
+{
+    [default] interface IServerXMLHTTPRequest;
+}
+
+[
+    uuid(88d969c6-f192-11d4-a65f-0040963251e5)
+]
+coclass ServerXMLHTTP40
+{
+    [default] interface IServerXMLHTTPRequest2;
+}
+
+[
+    helpstring("Server XML HTTP 6.0"),
+    progid("Msxml2.ServerXMLHTTP.6.0"),
+    threading(apartment),
+    uuid(88d96a0b-f192-11d4-a65f-0040963251e5)
+]
+coclass ServerXMLHTTP60
+{
+    [default] interface IServerXMLHTTPRequest2;
+}
+
+[
+    uuid(373984c9-b845-449b-91e7-45ac83036ade)
+]
+coclass XMLSchemaCache
+{
+    [default] interface IXMLDOMSchemaCollection;
+}
+
+[
+    uuid(f5078f1d-c551-11d3-89b9-0000f81fe221)
+]
+coclass XMLSchemaCache26
+{
+    [default] interface IXMLDOMSchemaCollection;
+}
+
+[
+    uuid(f5078f34-c551-11d3-89b9-0000f81fe221)
+]
+coclass XMLSchemaCache30
+{
+    [default] interface IXMLDOMSchemaCollection;
+}
+
+[
+    uuid(88d969c2-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLSchemaCache40
+{
+    [default] interface IXMLDOMSchemaCollection2;
+}
+
+[
+    helpstring("XML Schema Cache 6.0"),
+    progid("Msxml2.XMLSchemaCache.6.0"),
+    threading(both),
+    uuid(88d96a07-f192-11d4-a65f-0040963251e5)
+]
+coclass XMLSchemaCache60
+{
+    [default] interface IXMLDOMSchemaCollection2;
+}
+
+[
+    uuid(2933BF94-7B36-11d2-B20E-00C04F983E60)
+]
+coclass XSLTemplate
+{
+    [default] interface IXSLTemplate;
+}
+
+[
+    uuid(f5078f21-c551-11d3-89b9-0000f81fe221)
+]
+coclass XSLTemplate26
+{
+    [default] interface IXSLTemplate;
+}
+
+[
+    uuid(f5078f36-c551-11d3-89b9-0000f81fe221)
+]
+coclass XSLTemplate30
+{
+    [default] interface IXSLTemplate;
+}
+
+[
+    uuid(88d969c3-f192-11d4-a65f-0040963251e5)
+]
+coclass XSLTemplate40
+{
+    [default] interface IXSLTemplate;
+}
+
+[
+    helpstring("XSL Template 6.0"),
+    progid("Msxml2.XSLTemplate.6.0"),
+    threading(both),
+    uuid(88d96a08-f192-11d4-a65f-0040963251e5)
+]
+coclass XSLTemplate60
+{
+    [default] interface IXSLTemplate;
+}
+
+/*
+ * Sax Interfaces
+ */
+[
+    object,
+    local,
+    uuid(f078abe1-45d2-4832-91ea-4466ce2f25c9)
+]
+interface ISAXAttributes : IUnknown
+{
+    HRESULT getLength(
+        [out, retval] int *length);
+
+    HRESULT getURI(
+        [in] int nIndex,
+        [out] const WCHAR **pUrl,
+        [out] int *pUriSize);
+
+    HRESULT getLocalName(
+        [in] int nIndex,
+        [out] const WCHAR **pLocalName,
+        [out] int *pLocalNameLength);
+
+    HRESULT getQName(
+        [in] int nIndex,
+        [out] const WCHAR **pQName,
+        [out] int *pQNameLength);
+
+    HRESULT getName(
+        [in] int nIndex,
+        [out] const WCHAR **pUri,
+        [out] int * pUriLength,
+        [out] const WCHAR ** pLocalName,
+        [out] int * pLocalNameSize,
+        [out] const WCHAR ** pQName,
+        [out] int * pQNameLength);
+
+    HRESULT getIndexFromName(
+        [in] const WCHAR * pUri,
+        [in] int cUriLength,
+        [in] const WCHAR * pLocalName,
+        [in] int cocalNameLength,
+        [out, retval] int * index);
+
+    HRESULT getIndexFromQName(
+        [in] const WCHAR * pQName,
+        [in] int nQNameLength,
+        [out, retval] int * index);
+
+    HRESULT getType(
+        [in] int nIndex,
+        [out] const WCHAR ** pType,
+        [out] int * pTypeLength);
+
+    HRESULT getTypeFromName(
+        [in] const WCHAR * pUri,
+        [in] int nUri,
+        [in] const WCHAR * pLocalName,
+        [in] int nLocalName,
+        [out] const WCHAR ** pType,
+        [out] int * nType);
+
+    HRESULT getTypeFromQName(
+        [in] const WCHAR * pQName,
+        [in] int nQName,
+        [out] const WCHAR ** pType,
+        [out] int * nType);
+
+    HRESULT getValue(
+        [in] int nIndex,
+        [out] const WCHAR ** pValue,
+        [out] int * nValue);
+
+    HRESULT getValueFromName(
+        [in] const WCHAR * pUri,
+        [in] int nUri,
+        [in] const WCHAR * pLocalName,
+        [in] int nLocalName,
+        [out] const WCHAR ** pValue,
+        [out] int * nValue);
+
+    HRESULT getValueFromQName(
+        [in] const WCHAR * pQName,
+        [in] int nQName,
+        [out] const WCHAR ** pValue,
+        [out] int * nValue);
+};
+
+[
+    object,
+    local,
+    uuid(1545cdfa-9e4e-4497-a8a4-2bf7d0112c44)
+]
+interface ISAXContentHandler : IUnknown
+{
+    HRESULT putDocumentLocator(
+        [in] ISAXLocator * pLocator);
+
+    HRESULT startDocument();
+
+    HRESULT endDocument();
+
+    HRESULT startPrefixMapping(
+        [in] const WCHAR * pPrefix,
+        [in] int nPrefix,
+        [in] const WCHAR * pUri,
+        [in] int nUri);
+
+    HRESULT endPrefixMapping(
+        [in] const WCHAR * pPrefix,
+        [in] int nPrefix);
+
+    HRESULT startElement(
+        [in] const WCHAR * pNamespaceUri,
+        [in] int nNamespaceUri,
+        [in] const WCHAR * pLocalName,
+        [in] int nLocalName,
+        [in] const WCHAR * pQName,
+        [in] int nQName,
+        [in] ISAXAttributes * pAttr);
+
+    HRESULT endElement(
+        [in] const WCHAR * pNamespaceUri,
+        [in] int nNamespaceUri,
+        [in] const WCHAR * pLocalName,
+        [in] int nLocalName,
+        [in] const WCHAR * pQName,
+        [in] int nQName);
+
+    HRESULT characters(
+        [in] const WCHAR * pChars,
+        [in] int nChars);
+
+    HRESULT ignorableWhitespace(
+        [in] const WCHAR * pChars,
+        [in] int nChars);
+
+    HRESULT processingInstruction(
+        [in] const WCHAR * pTarget,
+        [in] int nTarget,
+        [in] const WCHAR * pData,
+        [in] int nData);
+
+    HRESULT skippedEntity(
+        [in] const WCHAR * pName,
+        [in] int nName);
+};
+
+[
+    object,
+    local,
+    uuid(862629ac-771a-47b2-8337-4e6843c1be90)
+]
+interface ISAXDeclHandler : IUnknown
+{
+    HRESULT elementDecl(
+        [in] const WCHAR * pName,
+        [in] int nName,
+        [in] const WCHAR * pModel,
+        [in] int nModel);
+
+    HRESULT attributeDecl(
+        [in] const WCHAR * pElementName,
+        [in] int nElementName,
+        [in] const WCHAR * pAttributeName,
+        [in] int nAttributeName,
+        [in] const WCHAR * pType,
+        [in] int nType,
+        [in] const WCHAR * pValueDefault,
+        [in] int nValueDefault,
+        [in] const WCHAR * pValue,
+        [in] int nValue);
+
+    HRESULT internalEntityDecl(
+        [in] const WCHAR * pName,
+        [in] int nName,
+        [in] const WCHAR * pValue,
+        [in] int nValue);
+
+    HRESULT externalEntityDecl(
+        [in] const WCHAR * pName,
+        [in] int nName,
+        [in] const WCHAR * pPublicId,
+        [in] int nPublicId,
+        [in] const WCHAR * pSystemId,
+        [in] int nSystemId);
+};
+
+[
+    object,
+    local,
+    uuid(e15c1baf-afb3-4d60-8c36-19a8c45defed)
+]
+interface ISAXDTDHandler : IUnknown
+{
+    HRESULT notationDecl(
+        [in] const WCHAR * pName,
+        [in] int nName,
+        [in] const WCHAR * pPublicId,
+        [in] int nPublicId,
+        [in] const WCHAR * pSystemId,
+        [in] int nSystemId);
+
+    HRESULT unparsedEntityDecl(
+        [in] const WCHAR * pName,
+        [in] int nName,
+        [in] const WCHAR * pPublicId,
+        [in] int nPublicId,
+        [in] const WCHAR * pSystemId,
+        [in] int nSystemId,
+        [in] const WCHAR * pNotationName,
+        [in] int nNotationName);
+};
+
+[
+    object,
+    local,
+    uuid(99bca7bd-e8c4-4d5f-a0cf-6d907901ff07),
+]
+interface ISAXEntityResolver : IUnknown
+{
+    HRESULT resolveEntity(
+        [in] const WCHAR * pPublicId,
+        [in] const WCHAR * pSystemId,
+        [out, retval] VARIANT * ret);
+};
+
+[
+    object,
+    local,
+    uuid(a60511c4-ccf5-479e-98a3-dc8dc545b7d0)
+]
+interface ISAXErrorHandler : IUnknown
+{
+    HRESULT error(
+        [in] ISAXLocator * pLocator,
+        [in] const WCHAR * pErrorMessage,
+        [in] HRESULT hrErrorCode);
+
+    HRESULT fatalError(
+        [in] ISAXLocator * pLocator,
+        [in] const WCHAR * pErrorMessage,
+        [in] HRESULT hrErrorCode);
+
+    HRESULT ignorableWarning(
+        [in] ISAXLocator * pLocator,
+        [in] const WCHAR * pErrorMessage,
+        [in] HRESULT hrErrorCode);
+};
+
+[
+    object,
+    local,
+    uuid(7f85d5f5-47a8-4497-bda5-84ba04819ea6)
+]
+interface ISAXLexicalHandler : IUnknown
+{
+    HRESULT startDTD(
+        [in] const WCHAR * pName,
+        [in] int nName,
+        [in] const WCHAR * pPublicId,
+        [in] int nPublicId,
+        [in] const WCHAR * pSystemId,
+        [in] int nSystemId);
+
+    HRESULT endDTD();
+
+    HRESULT startEntity(
+        [in] const WCHAR * pName,
+        [in] int nName);
+
+    HRESULT endEntity(
+        [in] const WCHAR * pName,
+        [in] int nName);
+
+    HRESULT startCDATA();
+
+    HRESULT endCDATA();
+
+    HRESULT comment(
+        [in] const WCHAR * pChars,
+        [in] int nChars);
+};
+
+[
+    object,
+    local,
+    uuid(9b7e472a-0de4-4640-bff3-84d38a051c31)
+]
+interface ISAXLocator : IUnknown
+{
+    HRESULT getColumnNumber(
+        [out, retval] int * nColumn);
+
+    HRESULT getLineNumber(
+        [out, retval] int * nLine);
+
+    HRESULT getPublicId(
+        [out, retval] const WCHAR ** publicId);
+
+    HRESULT getSystemId(
+        [out, retval] const WCHAR ** systemId);
+};
+
+[
+    local,
+    object,
+    uuid(70409222-ca09-4475-acb8-40312fe8d145)
+]
+interface ISAXXMLFilter : ISAXXMLReader
+{
+    HRESULT getParent(
+        [out, retval] ISAXXMLReader ** pReader);
+    HRESULT putParent(
+        [in] ISAXXMLReader * reader);
+};
+
+[
+local,
+object,
+uuid (a4f96ed0-f829-476e-81c0-cdc7bd2a0802)
+]
+interface ISAXXMLReader : IUnknown
+{
+    HRESULT getFeature(
+        [in] const WCHAR * pFeature,
+        [out, retval] VARIANT_BOOL * pValue);
+    HRESULT putFeature(
+        [in] const WCHAR * pFeature,
+        [in] VARIANT_BOOL vfValue);
+
+    HRESULT getProperty(
+        [in] const WCHAR * pProp,
+        [out, retval] VARIANT * pValue);
+    HRESULT putProperty(
+        [in] const WCHAR * pProp,
+        [in] VARIANT value);
+
+    HRESULT getEntityResolver(
+        [out, retval] ISAXEntityResolver ** ppEntityResolver);
+    HRESULT putEntityResolver(
+        [in] ISAXEntityResolver * pEntityResolver);
+
+    HRESULT getContentHandler(
+        [out, retval] ISAXContentHandler ** pContentHandler);
+    HRESULT putContentHandler(
+        [in] ISAXContentHandler * contentHandler);
+
+    HRESULT getDTDHandler(
+        [out, retval] ISAXDTDHandler ** pDTDHandler);
+    HRESULT putDTDHandler(
+        [in] ISAXDTDHandler * pDTDHandler);
+
+    HRESULT getErrorHandler(
+        [out, retval] ISAXErrorHandler ** pErrorHandler);
+    HRESULT putErrorHandler(
+        [in] ISAXErrorHandler * errorHandler);
+
+    HRESULT getBaseURL(
+        [out, retval] const WCHAR ** pBaseUrl);
+    HRESULT putBaseURL(
+        [in] const WCHAR * pBaseUrl);
+
+    HRESULT getSecureBaseURL(
+        [out, retval] const WCHAR ** pSecureBaseUrl);
+    HRESULT putSecureBaseURL(
+        [in] const WCHAR * secureBaseUrl);
+
+    HRESULT parse(
+        [in] VARIANT varInput);
+    HRESULT parseURL(
+        [in] const WCHAR * url);
+}
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(10dc0586-132b-4cac-8bb3-db00ac8b7ee0)
+]
+interface IVBSAXAttributes : IDispatch
+{
+    [propget, id(DISPID_SAX_ATTRIBUTES_LENGTH)]
+    HRESULT length( [out, retval] int * nLength);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETURI)]
+    HRESULT getURI( [in] int nIndex, [out, retval] BSTR * uri);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETLOCALNAME)]
+    HRESULT getLocalName( [in] int nIndex, [out, retval] BSTR * localName);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETQNAME)]
+    HRESULT getQName( [in] int nIndex, [out, retval] BSTR * QName);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMNAME)]
+    HRESULT getIndexFromName( [in] BSTR uri,
+                              [in] BSTR localName, [out, retval] int * nIndex);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETINDEXFROMQNAME)]
+    HRESULT getIndexFromQName( [in] BSTR QName, [out, retval] int * nIndex);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETTYPE)]
+    HRESULT getType( [in] int nIndex, [out, retval] BSTR * type);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMNAME)]
+    HRESULT getTypeFromName( [in] BSTR uri, [in] BSTR localName,
+                             [out, retval] BSTR * type);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETTYPEFROMQNAME)]
+    HRESULT getTypeFromQName( [in] BSTR QName, [out, retval] BSTR * type);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETVALUE)]
+    HRESULT getValue( [in] int nIndex, [out, retval] BSTR * value);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMNAME)]
+    HRESULT getValueFromName( [in] BSTR uri,
+                              [in] BSTR localName,
+                              [out, retval] BSTR * value);
+
+    [id(DISPID_SAX_ATTRIBUTES_GETVALUEFROMQNAME)]
+    HRESULT getValueFromQName( [in] BSTR QName, [out, retval] BSTR * value);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(2ed7290a-4dd5-4b46-bb26-4e4155e77faa)
+]
+interface IVBSAXContentHandler : IDispatch
+{
+    [propputref, id(DISPID_SAX_CONTENTHANDLER_DOCUMENTLOCATOR)]
+    HRESULT documentLocator( [in] IVBSAXLocator * oLocator);
+
+    [id(DISPID_SAX_CONTENTHANDLER_STARTDOCUMENT)]
+    HRESULT startDocument();
+
+    [id(DISPID_SAX_CONTENTHANDLER_ENDDOCUMENT)]
+    HRESULT endDocument();
+
+    [id(DISPID_SAX_CONTENTHANDLER_STARTPREFIXMAPPING)]
+    HRESULT startPrefixMapping( [in, out] BSTR * prefix, [in, out] BSTR * uri);
+
+    [id(DISPID_SAX_CONTENTHANDLER_ENDPREFIXMAPPING)]
+    HRESULT endPrefixMapping( [in, out] BSTR * prefix);
+
+    [id(DISPID_SAX_CONTENTHANDLER_STARTELEMENT)]
+    HRESULT startElement( [in, out] BSTR * namespaceURI,
+                          [in, out] BSTR * localName,
+                          [in, out] BSTR * QName,
+                          [in] IVBSAXAttributes * oAttributes);
+
+    [id(DISPID_SAX_CONTENTHANDLER_ENDELEMENT)]
+    HRESULT endElement( [in, out] BSTR * namespaceURI,
+                        [in, out] BSTR * localName, [in, out] BSTR * strQName);
+
+    [id(DISPID_SAX_CONTENTHANDLER_CHARACTERS)]
+    HRESULT characters( [in, out] BSTR * chars);
+
+    [id(DISPID_SAX_CONTENTHANDLER_IGNORABLEWHITESPACE)]
+    HRESULT ignorableWhitespace( [in, out] BSTR * chars);
+
+    [id(DISPID_SAX_CONTENTHANDLER_PROCESSINGINSTRUCTION)]
+    HRESULT processingInstruction( [in, out] BSTR * target,
+                                   [in, out] BSTR * data);
+
+    [id(DISPID_SAX_CONTENTHANDLER_SKIPPEDENTITY)]
+    HRESULT skippedEntity( [in, out] BSTR * name);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(e8917260-7579-4be1-b5dd-7afbfa6f077b)
+]
+interface IVBSAXDeclHandler : IDispatch
+{
+    [id(DISPID_SAX_DECLHANDLER_ELEMENTDECL)]
+    HRESULT elementDecl(
+        [in, out] BSTR * name,
+        [in, out] BSTR * model);
+
+    [id(DISPID_SAX_DECLHANDLER_ATTRIBUTEDECL)]
+    HRESULT attributeDecl(
+        [in, out] BSTR * elementName,
+        [in, out] BSTR * attributeName,
+        [in, out] BSTR * type,
+        [in, out] BSTR * valueDefault,
+        [in, out] BSTR * value);
+
+    [id(DISPID_SAX_DECLHANDLER_INTERNALENTITYDECL)]
+    HRESULT internalEntityDecl(
+        [in, out] BSTR * name,
+        [in, out] BSTR * value);
+
+    [id(DISPID_SAX_DECLHANDLER_EXTERNALENTITYDECL)]
+    HRESULT externalEntityDecl(
+        [in, out] BSTR * name,
+        [in, out] BSTR * publicId,
+        [in, out] BSTR * systemId);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(24fb3297-302d-4620-ba39-3a732d850558)
+]
+interface IVBSAXDTDHandler : IDispatch
+{
+    [id(DISPID_SAX_DTDHANDLER_NOTATIONDECL)]
+    HRESULT notationDecl(
+        [in, out] BSTR * name,
+        [in, out] BSTR * publicId,
+        [in, out] BSTR * systemId);
+
+    [id(DISPID_SAX_DTDHANDLER_UNPARSEDENTITYDECL)]
+    HRESULT unparsedEntityDecl(
+        [in, out] BSTR * name,
+        [in, out] BSTR * publicId,
+        [in, out] BSTR * systemId,
+        [in, out] BSTR * notationName);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(0c05d096-f45b-4aca-ad1a-aa0bc25518dc)
+]
+interface IVBSAXEntityResolver : IDispatch
+{
+    [id(DISPID_SAX_ENTITYRESOLVER_RESOLVEENTITY)]
+    HRESULT resolveEntity(
+        [in, out] BSTR * publicId,
+        [in, out] BSTR * systemId,
+        [out, retval] VARIANT * ret);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(d963d3fe-173c-4862-9095-b92f66995f52)
+]
+interface IVBSAXErrorHandler : IDispatch
+{
+    [id(DISPID_SAX_ERRORHANDLER_ERROR)]
+    HRESULT error(
+            [in] IVBSAXLocator * locator,
+           [in, out] BSTR * errorMessage,
+            [in] LONG errorCode);
+
+    [id(DISPID_SAX_ERRORHANDLER_FATALERROR)]
+    HRESULT fatalError(
+           [in] IVBSAXLocator * locator,
+           [in, out] BSTR * errorMessage,
+            [in] LONG errorCode);
+
+    [id(DISPID_SAX_ERRORHANDLER_IGNORABLEWARNING)]
+    HRESULT ignorableWarning(
+           [in] IVBSAXLocator * locator,
+           [in, out] BSTR * errorMessage,
+            [in] LONG errorCode);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(032aac35-8c0e-4d9d-979f-e3b702935576)
+]
+interface IVBSAXLexicalHandler : IDispatch
+{
+    [id(DISPID_SAX_LEXICALHANDLER_STARTDTD)]
+    HRESULT startDTD(
+        [in, out] BSTR * name,
+        [in, out] BSTR * publicId,
+        [in, out] BSTR * systemId);
+    [id(DISPID_SAX_LEXICALHANDLER_ENDDTD)]
+    HRESULT endDTD();
+
+    [id(DISPID_SAX_LEXICALHANDLER_STARTENTITY)]
+    HRESULT startEntity([in, out] BSTR * name);
+    [id(DISPID_SAX_LEXICALHANDLER_ENDENTITY)]
+    HRESULT endEntity([in, out] BSTR * name);
+
+    [id(DISPID_SAX_LEXICALHANDLER_STARTCDATA)]
+    HRESULT startCDATA();
+    [id(DISPID_SAX_LEXICALHANDLER_ENDCDATA)]
+    HRESULT endCDATA();
+
+    [id(DISPID_SAX_LEXICALHANDLER_COMMENT)]
+    HRESULT comment( [in, out] BSTR * chars);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(796e7ac5-5aa2-4eff-acad-3faaf01a3288)
+]
+interface IVBSAXLocator : IDispatch
+{
+    [propget, id(DISPID_SAX_LOCATOR_COLUMNNUMBER)]
+    HRESULT columnNumber( [out, retval] int * column);
+
+    [propget, id(DISPID_SAX_LOCATOR_LINENUMBER)]
+    HRESULT lineNumber( [out, retval] int * line);
+
+    [propget, id(DISPID_SAX_LOCATOR_PUBLICID)]
+    HRESULT publicId( [out, retval] BSTR * publicId);
+
+    [propget, id(DISPID_SAX_LOCATOR_SYSTEMID)]
+    HRESULT systemId( [out, retval] BSTR * systemId);
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(1299eb1b-5b88-433e-82de-82ca75ad4e04)
+]
+interface IVBSAXXMLFilter : IDispatch
+{
+    [propget, id(DISPID_SAX_XMLFILTER_PARENT)]
+    HRESULT parent( [out, retval] IVBSAXXMLReader ** reader);
+    [propputref, id(DISPID_SAX_XMLFILTER_PARENT)]
+    HRESULT parent( [in] IVBSAXXMLReader * reader);
+
+};
+
+[
+    dual,
+    oleautomation,
+    object,
+    uuid (8c033caa-6cd6-4f73-b728-4531af74945f)
+]
+interface IVBSAXXMLReader : IDispatch
+{
+    [id(DISPID_SAX_XMLREADER_GETFEATURE)]
+    HRESULT getFeature( [in] const WCHAR * pFeature,
+                        [out, retval] VARIANT_BOOL * pValue);
+    [id(DISPID_SAX_XMLREADER_PUTFEATURE)]
+    HRESULT putFeature( [in] const WCHAR * pFeature,
+                        [in] VARIANT_BOOL vfValue);
+
+    [id(DISPID_SAX_XMLREADER_GETPROPERTY)]
+    HRESULT getProperty( [in] const WCHAR * pProp,
+                         [out, retval] VARIANT * pValue);
+    [id(DISPID_SAX_XMLREADER_PUTPROPERTY)]
+    HRESULT putProperty( [in] const WCHAR * pProp, [in] VARIANT value);
+
+    [propget, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
+    HRESULT entityResolver(
+                    [out, retval] IVBSAXEntityResolver ** ppEntityResolver);
+    [propputref, id(DISPID_SAX_XMLREADER_ENTITYRESOLVER)]
+    HRESULT entityResolver( [in] IVBSAXEntityResolver * pEntityResolver);
+
+    [propget, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
+    HRESULT contentHandler(
+                        [out, retval] IVBSAXContentHandler ** pContentHandler);
+    [propputref, id(DISPID_SAX_XMLREADER_CONTENTHANDLER)]
+    HRESULT contentHandler([in] IVBSAXContentHandler * contentHandler);
+
+    [propget, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
+    HRESULT dtdHandler([out, retval] IVBSAXDTDHandler ** pDTDHandler);
+    [propputref, id(DISPID_SAX_XMLREADER_DTDHANDLER)]
+    HRESULT dtdHandler([in] IVBSAXDTDHandler * pDTDHandler);
+
+    [propget, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
+    HRESULT errorHandler([out, retval] IVBSAXErrorHandler ** pErrorHandler);
+    [propputref, id(DISPID_SAX_XMLREADER_ERRORHANDLER)]
+    HRESULT errorHandler([in] IVBSAXErrorHandler * errorHandler);
+
+    [propget, id(DISPID_SAX_XMLREADER_BASEURL)]
+    HRESULT baseURL([out, retval] const WCHAR ** pBaseUrl);
+    [propput, id(DISPID_SAX_XMLREADER_BASEURL)]
+    HRESULT baseURL([in] const WCHAR * pBaseUrl);
+
+    [propget, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
+    HRESULT secureBaseURL([out, retval] const WCHAR ** pSecureBaseUrl);
+    [propput, id(DISPID_SAX_XMLREADER_SECUREBASEURL)]
+    HRESULT secureBaseURL([in] const WCHAR * secureBaseUrl);
+
+    [id(DISPID_SAX_XMLREADER_PARSE)]
+    HRESULT parse( [in] VARIANT varInput);
+    [id(DISPID_SAX_XMLREADER_PARSEURL)]
+    HRESULT parseURL([in] const WCHAR * url);
+}
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(f10d27cc-3ec0-415c-8ed8-77ab1c5e7262)
+]
+interface IMXAttributes : IDispatch
+{
+    [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTE)]
+    HRESULT addAttribute(
+        [in] BSTR uri,
+        [in] BSTR localName,
+        [in] BSTR QName,
+        [in] BSTR type,
+        [in] BSTR value);
+
+    [id(DISPID_MX_ATTRIBUTES_ADDATTRIBUTEFROMINDEX)]
+    HRESULT addAttributeFromIndex( [in] VARIANT atts,
+                                   [in] int index);
+
+    [id(DISPID_MX_ATTRIBUTES_CLEAR)]
+    HRESULT clear();
+
+    [id(DISPID_MX_ATTRIBUTES_REMOVEATTRIBUTE)]
+    HRESULT removeAttribute( [in] int index);
+
+    [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTE)]
+    HRESULT setAttribute(
+        [in] int index,
+        [in] BSTR uri,
+        [in] BSTR localName,
+        [in] BSTR QName,
+        [in] BSTR type,
+        [in] BSTR value);
+
+    [id(DISPID_MX_ATTRIBUTES_SETATTRIBUTES)]
+    HRESULT setAttributes( [in] VARIANT atts);
+
+    [id(DISPID_MX_ATTRIBUTES_SETLOCALNAME)]
+    HRESULT setLocalName( [in] int index,
+        [in] BSTR localName);
+
+    [id(DISPID_MX_ATTRIBUTES_SETQNAME)]
+    HRESULT setQName(
+        [in] int index,
+        [in] BSTR QName);
+
+    [id(DISPID_MX_ATTRIBUTES_SETTYPE)]
+    HRESULT setType( [in] int index, [in] BSTR type);
+
+    [id(DISPID_MX_ATTRIBUTES_SETURI)]
+    HRESULT setURI( [in] int index,  [in] BSTR uri);
+
+    [id(DISPID_MX_ATTRIBUTES_SETVALUE)]
+    HRESULT setValue([in] int index, [in] BSTR value);
+};
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(fa4bb38c-faf9-4cca-9302-d1dd0fe520db)
+]
+interface IMXSchemaDeclHandler : IDispatch
+{
+    [id(DISPID_MX_SCHEMADECLHANDLER_SCHEMAELEMENTDECL)]
+    HRESULT schemaElementDecl( [in] ISchemaElement *oSchemaElement );
+}
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(808f4e35-8d5a-4fbe-8466-33a41279ed30)
+]
+interface IMXReaderControl : IDispatch
+{
+    [id(DISPID_MX_READER_CONTROL_ABORT)]
+    HRESULT abort();
+
+    [id(DISPID_MX_READER_CONTROL_RESUME)]
+    HRESULT resume();
+
+    [id(DISPID_MX_READER_CONTROL_SUSPEND)]
+    HRESULT suspend();
+};
+
+[
+    object,
+    dual,
+    oleautomation,
+    uuid(4d7ff4ba-1565-4ea8-94e1-6e724a46f98d)
+]
+interface IMXWriter :  IDispatch
+{
+    [propput, id(DISPID_MX_WRITER_OUTPUT)]
+    HRESULT output ( [in] VARIANT Destination);
+    [propget, id(DISPID_MX_WRITER_OUTPUT)]
+    HRESULT output ( [out, retval] VARIANT * Destination);
+
+    [propput, id(DISPID_MX_WRITER_ENCODING)]
+    HRESULT encoding ([in] BSTR encoding);
+    [propget, id(DISPID_MX_WRITER_ENCODING)]
+    HRESULT encoding ([out, retval] BSTR * encoding);
+
+    [propput, id(DISPID_MX_WRITER_BYTEORDERMARK)]
+    HRESULT byteOrderMark ([in] VARIANT_BOOL writeByteOrderMark);
+    [propget, id(DISPID_MX_WRITER_BYTEORDERMARK)]
+    HRESULT byteOrderMark ([out, retval] VARIANT_BOOL * writeByteOrderMark);
+
+    [propput, id(DISPID_MX_WRITER_INDENT)]
+    HRESULT indent ([in] VARIANT_BOOL indentMode);
+    [propget, id(DISPID_MX_WRITER_INDENT)]
+    HRESULT indent ([out, retval] VARIANT_BOOL * indentMode);
+
+    [propput, id(DISPID_MX_WRITER_STANDALONE)]
+    HRESULT standalone ([in] VARIANT_BOOL value);
+    [propget, id(DISPID_MX_WRITER_STANDALONE)]
+    HRESULT standalone ([out, retval] VARIANT_BOOL * value);
+
+    [propput, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
+    HRESULT omitXMLDeclaration ([in] VARIANT_BOOL value);
+    [propget, id(DISPID_MX_WRITER_OMITXMLDECLARATION)]
+    HRESULT omitXMLDeclaration ([out, retval] VARIANT_BOOL * value);
+
+    [propput, id(DISPID_MX_WRITER_VERSION)]
+    HRESULT version ([in] BSTR version);
+    [propget, id(DISPID_MX_WRITER_VERSION)]
+    HRESULT version ([out, retval] BSTR * version);
+
+    [propput, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
+    HRESULT disableOutputEscaping([in] VARIANT_BOOL value);
+    [propget, id(DISPID_MX_WRITER_DISABLEOUTPUTESCAPING)]
+    HRESULT disableOutputEscaping([out, retval] VARIANT_BOOL * value);
+
+    [id(DISPID_MX_WRITER_FLUSH)]
+    HRESULT flush();
+};
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(c90352f4-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IMXNamespacePrefixes : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT item(
+        [in] long index,
+        [out, retval] BSTR *prefix);
+
+    [propget, id(DISPID_MX_NSMGR_LENGTH)]
+    HRESULT length( [out,retval] long *length );
+
+    [propget, restricted, hidden, id(DISPID_NEWENUM)]
+    HRESULT _newEnum( [out, retval] IUnknown **ppUnk );
+}
+
+[
+    local,
+    object,
+    hidden,
+    uuid(c90352f6-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IMXNamespaceManager : IUnknown
+{
+    HRESULT putAllowOverride([in] VARIANT_BOOL fOverride);
+
+    HRESULT getAllowOverride([out, retval] VARIANT_BOOL *fOverride);
+
+    HRESULT reset();
+
+    HRESULT pushContext();
+
+    HRESULT pushNodeContext(
+        [in] IXMLDOMNode *contextNode,
+        [in] VARIANT_BOOL fDeep);
+
+    HRESULT popContext();
+
+    HRESULT declarePrefix(
+        [in] const WCHAR *prefix,
+        [in] const WCHAR *namespaceURI);
+
+    HRESULT getDeclaredPrefix(
+        [in] long nIndex,
+        [in, out] WCHAR *pwchPrefix,
+        [in, out] int *pcchPrefix);
+
+    HRESULT getPrefix(
+        [in] const WCHAR *pwszNamespaceURI,
+        [in] long nIndex,
+        [in, out] WCHAR *pwchPrefix,
+        [in, out] int *pcchPrefix);
+
+    HRESULT getURI(
+        [in] const WCHAR *pwchPrefix,
+        [in] IXMLDOMNode* pContextNode,
+        [in, out] WCHAR *pwchUri,
+        [in, out] int *pcchUri);
+}
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(c90352f5-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IVBMXNamespaceManager : IDispatch
+{
+    [propput, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
+    HRESULT allowOverride([in] VARIANT_BOOL fOverride);
+
+    [propget, id(DISPID_MX_NSMGR_ALLOWOVERRIDE)]
+    HRESULT allowOverride([out,retval] VARIANT_BOOL* fOverride);
+
+    [id(DISPID_MX_NSMGR_RESET)]
+    HRESULT reset();
+
+    [id(DISPID_MX_NSMGR_PUSHCONTEXT)]
+    HRESULT pushContext();
+
+    [id(DISPID_MX_NSMGR_PUSHNODECONTEXT)]
+    HRESULT pushNodeContext(
+        [in] IXMLDOMNode* contextNode,
+        [in, defaultvalue(-1)] VARIANT_BOOL fDeep);
+
+    [id(DISPID_MX_NSMGR_POPCONTEXT)]
+    HRESULT popContext();
+
+    [id(DISPID_MX_NSMGR_DECLAREPREFIX)]
+    HRESULT declarePrefix(
+        [in] BSTR prefix,
+        [in] BSTR namespaceURI);
+
+    [id(DISPID_MX_NSMGR_GETDECLAREDPREFIXES)]
+    HRESULT getDeclaredPrefixes([out, retval] IMXNamespacePrefixes** prefixes);
+
+    [id(DISPID_MX_NSMGR_GETPREFIXES)]
+    HRESULT getPrefixes(
+        [in] BSTR namespaceURI,
+        [out, retval] IMXNamespacePrefixes** prefixes);
+
+    [id(DISPID_MX_NSMGR_GETURI)]
+    HRESULT getURI(
+        [in] BSTR prefix,
+        [out, retval] VARIANT* uri);
+
+    [id(DISPID_MX_NSMGR_GETURIFROMNODE)]
+    HRESULT getURIFromNode(
+        [in] BSTR strPrefix,
+        [in] IXMLDOMNode* contextNode,
+        [out, retval] VARIANT* uri);
+}
+
+[
+    local,
+    object,
+    dual,
+    oleautomation,
+    uuid(c90352f7-643c-4fbc-bb23-e996eb2d51fd)
+]
+interface IMXXMLFilter : IDispatch
+{
+    [id(DISPID_MXXML_FILTER_GETFEATURE)]
+    HRESULT getFeature(
+        [in] BSTR strName,
+        [out, retval] VARIANT_BOOL * fValue);
+
+    [id(DISPID_MXXML_FILTER_PUTFEATURE)]
+    HRESULT putFeature(
+        [in] BSTR strName,
+        [in] VARIANT_BOOL fValue);
+
+    [id(DISPID_MXXML_FILTER_GETPROPERTY)]
+    HRESULT getProperty(
+        [in] BSTR strName,
+        [out, retval] VARIANT * varValue);
+
+    [id(DISPID_MXXML_FILTER_PUTPROPERTY)]
+    HRESULT putProperty(
+        [in] BSTR strName,
+        [in] VARIANT varValue);
+
+    [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propget]
+    HRESULT entityResolver( [out, retval] IUnknown **oResolver );
+
+    [id(DISPID_MXXML_FILTER_ENTITYRESOLVER), propputref]
+    HRESULT entityResolver( [in] IUnknown *oResolver );
+
+    [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propget]
+    HRESULT contentHandler( [out, retval] IUnknown **oHandler );
+
+    [id(DISPID_MXXML_FILTER_CONTENTHANDLER), propputref]
+    HRESULT contentHandler( [in] IUnknown *oHandler );
+
+    [id(DISPID_MXXML_FILTER_DTDHANDLER), propget]
+    HRESULT dtdHandler( [out, retval] IUnknown **oHandler );
+
+    [id(DISPID_MXXML_FILTER_DTDHANDLER), propputref]
+    HRESULT dtdHandler( [in] IUnknown *oHandler );
+
+    [id(DISPID_MXXML_FILTER_ERRORHANDLER), propget]
+    HRESULT errorHandler( [out, retval] IUnknown **oHandler );
+
+    [id(DISPID_MXXML_FILTER_ERRORHANDLER), propputref]
+    HRESULT errorHandler( [in] IUnknown *oHandler );
+}
+
+[
+    local,
+    object,
+    uuid(50ea08b1-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    dual,
+]
+interface ISchemaModelGroup : ISchemaParticle
+{
+    [id(DISPID_SOM_PARTICLES), propget]
+    HRESULT particles(
+        [out,retval] ISchemaItemCollection** particles);
+};
+
+[
+    local,
+    object,
+    uuid(50ea08bc-dd1b-4664-9a50-c2f40f4bd79a),
+    oleautomation,
+    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),
+    oleautomation,
+    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),
+    oleautomation,
+    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)
+]
+coclass SAXXMLReader
+{
+    [default] interface IVBSAXXMLReader;
+    interface ISAXXMLReader;
+    interface IMXReaderControl;
+};
+
+[
+    uuid(3124c396-fb13-4836-a6ad-1317f1713688)
+]
+coclass SAXXMLReader30
+{
+    [default] interface IVBSAXXMLReader;
+    interface ISAXXMLReader;
+    interface IMXReaderControl;
+};
+
+[
+    uuid(7c6e29bc-8b8b-4c3d-859e-af6cd158be0f)
+]
+coclass SAXXMLReader40
+{
+    [default] interface IVBSAXXMLReader;
+    interface ISAXXMLReader;
+}
+
+[
+    helpstring("SAX XML Reader 6.0"),
+    progid("Msxml2.SAXXMLReader.6.0"),
+    threading(both),
+    uuid(88d96a0c-f192-11d4-a65f-0040963251e5)
+]
+coclass SAXXMLReader60
+{
+    [default] interface IVBSAXXMLReader;
+    interface ISAXXMLReader;
+}
+
+[
+    uuid(a4c23ec3-6b70-4466-9127-550077239978)
+]
+coclass MXHTMLWriter
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXErrorHandler;
+    interface ISAXDTDHandler;
+    interface ISAXLexicalHandler;
+    interface ISAXDeclHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(853d1540-c1a7-4aa9-a226-4d3bd301146d)
+]
+coclass MXHTMLWriter30
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(88d969c9-f192-11d4-a65f-0040963251e5)
+]
+coclass MXHTMLWriter40
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    helpstring("MXHTMLWriter 6.0"),
+    progid("Msxml2.MXHTMLWriter.6.0"),
+    threading(both),
+    uuid(88d96a10-f192-11d4-a65f-0040963251e5)
+]
+coclass MXHTMLWriter60
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(fc220ad8-a72a-4ee8-926e-0b7ad152a020)
+]
+coclass MXXMLWriter
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXErrorHandler;
+    interface ISAXDTDHandler;
+    interface ISAXLexicalHandler;
+    interface ISAXDeclHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+};
+
+[
+    uuid(3d813dfe-6c91-4a4e-8f41-04346a841d9c)
+]
+coclass MXXMLWriter30
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    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;
+}
+
+[
+    helpstring("MXXMLWriter 6.0"),
+    progid("Msxml2.MXXMLWriter.6.0"),
+    threading(both),
+    uuid(88d96a0f-f192-11d4-a65f-0040963251e5)
+]
+coclass MXXMLWriter60
+{
+    [default] interface IMXWriter;
+
+    interface ISAXContentHandler;
+    interface ISAXDeclHandler;
+    interface ISAXDTDHandler;
+    interface ISAXErrorHandler;
+    interface ISAXLexicalHandler;
+
+    interface IVBSAXContentHandler;
+    interface IVBSAXDeclHandler;
+    interface IVBSAXDTDHandler;
+    interface IVBSAXErrorHandler;
+    interface IVBSAXLexicalHandler;
+}
+
+[
+    uuid(88d969d5-f192-11d4-a65f-0040963251e5)
+]
+coclass MXNamespaceManager
+{
+    [default] interface IVBMXNamespaceManager;
+    interface IMXNamespaceManager;
+}
+
+[
+    uuid(88d969d6-f192-11d4-a65f-0040963251e5)
+]
+coclass MXNamespaceManager40
+{
+    [default] interface IVBMXNamespaceManager;
+    interface IMXNamespaceManager;
+}
+
+[
+    helpstring("MXNamespaceManager 6.0"),
+    progid("Msxml2.MXNamespaceManager.6.0"),
+    threading(both),
+    uuid(88d96a11-f192-11d4-a65f-0040963251e5)
+]
+coclass MXNamespaceManager60
+{
+    [default] interface IVBMXNamespaceManager;
+    interface IMXNamespaceManager;
+}
+
+[
+    uuid(4dd441ad-526d-4a77-9f1b-9841ed802fb0)
+]
+coclass SAXAttributes
+{
+    [default] interface IMXAttributes;
+    interface IVBSAXAttributes;
+    interface ISAXAttributes;
+}
+
+[
+    uuid(3e784a01-f3ae-4dc0-9354-9526b9370eba)
+]
+coclass SAXAttributes30
+{
+    [default] interface IMXAttributes;
+    interface IVBSAXAttributes;
+    interface ISAXAttributes;
+}
+
+[
+    uuid(88d969ca-f192-11d4-a65f-0040963251e5),
+]
+coclass SAXAttributes40
+{
+    [default] interface IMXAttributes;
+    interface IVBSAXAttributes;
+    interface ISAXAttributes;
+}
+
+[
+    helpstring("SAXAttributes 6.0"),
+    progid("Msxml2.SAXAttributes.6.0"),
+    threading(both),
+    uuid(88d96a0e-f192-11d4-a65f-0040963251e5)
+]
+coclass SAXAttributes60
+{
+    [default] interface IMXAttributes;
+    interface IVBSAXAttributes;
+    interface ISAXAttributes;
+}
+
+/*
+ * Error Codes
+ */
+cpp_quote("#define E_XML_NOTWF              0xC00CE223")
+cpp_quote("#define E_XML_NODTD              0xC00CE224")
+cpp_quote("#define E_XML_INVALID            0xC00CE225")
+cpp_quote("#define E_XML_BUFFERTOOSMALL     0xC00CE226")
+
+} /* Library MSXML */
diff --git a/reactos/include/psdk/msxml6did.h b/reactos/include/psdk/msxml6did.h
new file mode 100644 (file)
index 0000000..1e52578
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2010 Nikolay Sivov for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __MSXML6DID_H__
+#define __MSXML6DID_H__
+
+#include <msxml2did.h>
+
+#endif /* __MSXML6DID_H__ */
index 70f93ab..a3896e9 100644 (file)
@@ -345,6 +345,18 @@ interface IBindCtx : IUnknown
     COSERVERINFO *pServerInfo;
   } BIND_OPTS2, *LPBIND_OPTS2;
 
+  typedef struct tagBIND_OPTS3 {
+    DWORD cbStruct;
+    DWORD grfFlags;
+    DWORD grfMode;
+    DWORD dwTickCountDeadline;
+    DWORD dwTrackFlags;
+    DWORD dwClassContext;
+    LCID  locale;
+    COSERVERINFO *pServerInfo;
+    HWND hwnd;
+  } BIND_OPTS3, *LPBIND_OPTS3;
+
   typedef enum tagBIND_FLAGS {
     BIND_MAYBOTHERUSER   = 1,
     BIND_JUSTTESTEXISTENCE = 2
index 127df2b..4841165 100644 (file)
@@ -40,6 +40,15 @@ typedef ULONG DBREFCOUNT;
 typedef ULONG DB_UPARAMS;
 typedef LONG  DB_LPARAMS;
 typedef DWORD DBHASHVALUE;
+typedef struct {
+    SHORT year;
+    USHORT month;
+    USHORT day;
+    USHORT hour;
+    USHORT minute;
+    USHORT second;
+    ULONG fraction;
+} DBTIMESTAMP;
 
 #include "dbs.idl"
 
diff --git a/reactos/include/psdk/propkeydef.h b/reactos/include/psdk/propkeydef.h
new file mode 100644 (file)
index 0000000..2a796ea
--- /dev/null
@@ -0,0 +1,70 @@
+/*
+ * Copyright (C) 2009 Maarten Lankhorst
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef PID_FIRST_USABLE
+#define PID_FIRST_USABLE 2
+#endif
+
+#ifndef REFPROPERTYKEY
+#ifdef __cplusplus
+#define REFPROPERTYKEY const PROPERTYKEY &
+#else /*!__cplusplus*/
+#define REFPROPERTYKEY const PROPERTYKEY * __MIDL_CONST
+#endif
+#endif
+
+#undef DEFINE_PROPERTYKEY
+
+#ifdef INITGUID
+#ifdef __cplusplus
+#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
+        EXTERN_C const PROPERTYKEY name DECLSPEC_HIDDEN DECLSPEC_SELECTANY; \
+        EXTERN_C const PROPERTYKEY name = \
+        { { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }, pid }
+#else
+#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
+        const PROPERTYKEY name DECLSPEC_HIDDEN DECLSPEC_SELECTANY; \
+        const PROPERTYKEY name = \
+        { { l, w1, w2, { b1, b2,  b3,  b4,  b5,  b6,  b7,  b8 } }, pid }
+#endif
+#else
+#define DEFINE_PROPERTYKEY(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8, pid) \
+    EXTERN_C const PROPERTYKEY name DECLSPEC_HIDDEN DECLSPEC_SELECTANY
+#endif
+
+#ifndef IsEqualPropertyKey
+#ifdef __cplusplus
+#define IsEqualPropertyKey(a,b) (((a).pid == (b).pid) && IsEqualIID((a).fmtid,(b).fmtid))
+#else
+#define IsEqualPropertyKey(a,b) (((a).pid == (b).pid) && IsEqualIID(&(a).fmtid,&(b).fmtid))
+#endif
+#endif
+
+#ifndef _PROPERTYKEY_EQUALITY_OPERATORS_
+#define _PROPERTYKEY_EQUALITY_OPERATORS_
+#ifdef __cplusplus
+inline bool operator==(REFPROPERTYKEY guidOne, REFPROPERTYKEY guidOther)
+{
+    return IsEqualPropertyKey(guidOne, guidOther);
+}
+inline bool operator!=(REFPROPERTYKEY guidOne, REFPROPERTYKEY guidOther)
+{
+    return !(guidOne == guidOther);
+}
+#endif
+#endif
index cc5770e..ef9ecfc 100644 (file)
@@ -795,6 +795,14 @@ interface ICreateObject : IUnknown
     );
 }
 
+cpp_quote("#define PKEY_PIDSTR_MAX 10")
+cpp_quote("#define GUIDSTRING_MAX 39")
+cpp_quote("#define PKEYSTR_MAX (GUIDSTRING_MAX + 1 + PKEY_PIDSTR_MAX)")
+
+cpp_quote("HRESULT WINAPI PSStringFromPropertyKey(REFPROPERTYKEY,LPWSTR,UINT);")
+cpp_quote("HRESULT WINAPI PSPropertyKeyFromString(LPCWSTR,PROPERTYKEY*);")
+cpp_quote("HRESULT WINAPI PSGetPropertyDescription(REFPROPERTYKEY,REFIID,void **);")
+
 /* TODO: Add remainder of the C api here */
 
 [
index 6384703..a7b5cbf 100644 (file)
@@ -57,6 +57,7 @@
        <file>shobjidl.idl</file>
        <file>shtypes.idl</file>
        <file>strmif.idl</file>
+       <file>structuredquerycondition.idl</file>
        <file>textstor.idl</file>
        <file>tuner.idl</file>
        <file>tom.idl</file>
@@ -67,7 +68,9 @@
        <file>mimeole.idl</file>
        <file>mscoree.idl</file>
        <file>mshtmhst.idl</file>
+       <file>msxml6.idl</file>
        <file>exdisp.idl</file>
+       <file>winsxs.idl</file>
        <file>wtypes.idl</file>
        <file>wuapi.idl</file>
        <file>comcat.idl</file>
index 3fb5566..ec0354f 100644 (file)
@@ -1826,6 +1826,30 @@ interface IUriBuilder: IUnknown
         [out] BOOL *pfModified);
 };
 
+cpp_quote("HRESULT WINAPI CreateIUriBuilder(IUri*,DWORD,DWORD_PTR,IUriBuilder**);")
+
+/*****************************************************************************
+ * IUriBuilderFactory interface
+ */
+[
+    local,
+    object,
+    uuid(e982ce48-0b96-440c-bc37-0c869b27a29e),
+    pointer_default(unique)
+]
+interface IUriBuilderFactory : IUnknown
+{
+    HRESULT CreateInitializedIUriBuilder(
+        [in]  DWORD dwFlags,
+        [in]  DWORD_PTR dwReserved,
+        [out] IUriBuilder **ppIUriBuilder);
+
+    HRESULT CreateIUriBuilder(
+        [in]  DWORD dwFlags,
+        [in]  DWORD_PTR dwReserved,
+        [out] IUriBuilder **ppIUriBuilder);
+};
+
 /*****************************************************************************
  * IInternetProtocolEx interface
  */
@@ -1897,13 +1921,19 @@ cpp_quote("#define INET_E_SECURITY_PROBLEM          _HRESULT_TYPEDEF_(0x800C000E
 cpp_quote("#define INET_E_CANNOT_LOAD_DATA          _HRESULT_TYPEDEF_(0x800C000F)")
 cpp_quote("#define INET_E_CANNOT_INSTANTIATE_OBJECT _HRESULT_TYPEDEF_(0x800C0010)")
 cpp_quote("#define INET_E_USE_DEFAULT_PROTOCOLHANDLER _HRESULT_TYPEDEF_(0x800C0011)")
-cpp_quote("#define INET_E_USE_DEFAULT_SETTING       _HRESULT_TYPEDEF_(0x800C0012)")
+cpp_quote("#define INET_E_USE_DEFAULT_SETTING       _HRESULT_TYPEDEF_(0x800C0012L)")
+cpp_quote("#define INET_E_DEFAULT_ACTION            INET_E_USE_DEFAULT_PROTOCOLHANDLER")
 cpp_quote("#define INET_E_QUERYOPTION_UNKNOWN       _HRESULT_TYPEDEF_(0x800C0013)")
 cpp_quote("#define INET_E_REDIRECT_FAILED           _HRESULT_TYPEDEF_(0x800C0014)")
 cpp_quote("#define INET_E_REDIRECT_TO_DIR           _HRESULT_TYPEDEF_(0x800C0015)")
 cpp_quote("#define INET_E_CANNOT_LOCK_REQUEST       _HRESULT_TYPEDEF_(0x800C0016)")
-cpp_quote("#define INET_E_ERROR_LAST                INET_E_REDIRECT_TO_DIR")
-cpp_quote("#define INET_E_DEFAULT_ACTION            INET_E_USE_DEFAULT_PROTOCOLHANDLER")
+cpp_quote("#define INET_E_CODE_DOWNLOAD_DECLINED    _HRESULT_TYPEDEF_(0x800C0100)")
+cpp_quote("#define INET_E_RESULT_DISPATCHED         _HRESULT_TYPEDEF_(0x800C0200)")
+cpp_quote("#define INET_E_CANNOT_REPLACE_SFP_FILE   _HRESULT_TYPEDEF_(0x800C0300)")
+cpp_quote("#define INET_E_CODE_INSTALL_SUPPRESSED   _HRESULT_TYPEDEF_(0x800C0400)")
+cpp_quote("#define INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY  _HRESULT_TYPEDEF_(0x800C0500)")
+cpp_quote("#define INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE        _HRESULT_TYPEDEF_(0x800C0501)")
+cpp_quote("#define INET_E_ERROR_LAST                INET_E_DOWNLOAD_BLOCKED_BY_INPRIVATE")
 
 cpp_quote("HRESULT WINAPI CoGetClassObjectFromURL(REFCLSID, LPCWSTR, DWORD, DWORD, LPCWSTR, LPBINDCTX, DWORD, LPVOID, REFIID, LPVOID*);")
 cpp_quote("HRESULT WINAPI CreateURLMoniker(IMoniker *pmkContext, LPCWSTR szURL, IMoniker **ppmk);")
@@ -1922,9 +1952,12 @@ cpp_quote("HRESULT WINAPI CreateAsyncBindCtx(DWORD, IBindStatusCallback*, IEnumF
 cpp_quote("HRESULT WINAPI CreateAsyncBindCtxEx(IBindCtx*,DWORD,IBindStatusCallback*,IEnumFORMATETC*,IBindCtx**,DWORD);")
 cpp_quote("HRESULT WINAPI CoInternetCreateSecurityManager(IServiceProvider*,IInternetSecurityManager**,DWORD);")
 cpp_quote("HRESULT WINAPI CoInternetCombineUrl(LPCWSTR,LPCWSTR,DWORD,LPWSTR,DWORD,DWORD*,DWORD);")
+cpp_quote("HRESULT WINAPI CoInternetCombineUrlEx(IUri*,LPCWSTR,DWORD,IUri**,DWORD_PTR);")
 cpp_quote("HRESULT WINAPI CoInternetCompareUrl(LPCWSTR,LPCWSTR,DWORD);")
+cpp_quote("HRESULT WINAPI CoInternetCombineIUri(IUri*,IUri*,DWORD,IUri**,DWORD_PTR);")
 cpp_quote("HRESULT WINAPI CoInternetCreateZoneManager(IServiceProvider*, IInternetZoneManager**, DWORD);")
 cpp_quote("HRESULT WINAPI CoInternetParseUrl(LPCWSTR,PARSEACTION,DWORD,LPWSTR,DWORD,DWORD*,DWORD);")
+cpp_quote("HRESULT WINAPI CoInternetParseIUri(IUri*,PARSEACTION,DWORD,LPWSTR,DWORD,DWORD*,DWORD_PTR);")
 cpp_quote("HRESULT WINAPI CoInternetQueryInfo(LPCWSTR,QUERYOPTION,DWORD,LPVOID,DWORD,DWORD*,DWORD);")
 cpp_quote("HRESULT WINAPI CoInternetSetFeatureEnabled(INTERNETFEATURELIST,DWORD,BOOL);")
 cpp_quote("HRESULT WINAPI CoInternetGetSecurityUrl(LPCWSTR,LPWSTR*,PSUACTION,DWORD);")
index b2ac6c1..db6a5ac 100644 (file)
@@ -24,6 +24,10 @@ import "objidl.idl";
 interface IWbemContext;
 interface IWbemServices;
 interface IWbemStatusCodeText;
+interface IWbemCallResult;
+interface IWbemObjectSink;
+interface IWbemClassObject;
+interface IEnumWbemClassObject;
 
 typedef [v1_enum] enum tag_WBEMSTATUS
 {
@@ -209,3 +213,183 @@ interface IWbemStatusCodeText : IUnknown
         [in] LONG lFlags,
         [out] BSTR *MessageText);
 };
+
+[
+    object,
+    restricted,
+    uuid(9556dc99-828c-11cf-a37e-00aa003240c7),
+    pointer_default(unique)
+]
+interface IWbemServices : IUnknown
+{
+    HRESULT OpenNamespace(
+        [in] const BSTR strNamespace,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IWbemServices **ppWorkingNamespace,
+        [out] IWbemCallResult **ppResult);
+
+    HRESULT CancelAsyncCall(
+        [in] IWbemObjectSink *pSink);
+
+    HRESULT QueryObjectSink(
+        [in] long lFlags,
+        [out] IWbemObjectSink **ppResponseHandler);
+
+    HRESULT GetObject(
+        [in] const BSTR strObjectPath,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IWbemClassObject **ppObject,
+        [out] IWbemCallResult **ppCallResult);
+
+    HRESULT GetObjectAsync(
+        [in] const BSTR strObjectPath,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT PutClass(
+        [in] IWbemClassObject *pObject,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IWbemCallResult **ppCallResult);
+
+    HRESULT PutClassAsync(
+        [in] IWbemClassObject *pObject,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT DeleteClass(
+        [in] const BSTR strClass,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IWbemCallResult **ppCallResult);
+
+    HRESULT DeleteClassAsync(
+        [in] const BSTR strClass,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT CreateClassEnum(
+        [in] const BSTR strSuperclass,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IEnumWbemClassObject **ppEnum);
+
+    HRESULT CreateClassEnumAsync(
+        [in] const BSTR strSuperclass,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT PutInstance(
+        [in] IWbemClassObject *pInst,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IWbemCallResult **ppCallResult);
+
+    HRESULT PutInstanceAsync(
+        [in] IWbemClassObject *pInst,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT DeleteInstance(
+        [in] const BSTR strObjectPath,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IWbemCallResult **ppCallResult);
+
+    HRESULT DeleteInstanceAsync(
+        [in] const BSTR strObjectPath,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT CreateInstanceEnum(
+        [in] const BSTR strFilter,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IEnumWbemClassObject **ppEnum);
+
+    HRESULT CreateInstanceEnumAsync(
+        [in] const BSTR strFilter,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT ExecQuery(
+        [in] const BSTR strQueryLanguage,
+        [in] const BSTR strQuery,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IEnumWbemClassObject **ppEnum);
+
+    HRESULT ExecQueryAsync(
+        [in] const BSTR strQueryLanguage,
+        [in] const BSTR strQuery,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT ExecNotificationQuery(
+        [in] const BSTR strQueryLanguage,
+        [in] const BSTR strQuery,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [out] IEnumWbemClassObject **ppEnum);
+
+    HRESULT ExecNotificationQueryAsync(
+        [in] const BSTR strQueryLanguage,
+        [in] const BSTR strQuery,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemObjectSink *pResponseHandler);
+
+    HRESULT ExecMethod(
+        [in] const BSTR strObjectPath,
+        [in] const BSTR strMethodName,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemClassObject *pInParams,
+        [out] IWbemClassObject **ppOutParams,
+        [out] IWbemCallResult **ppCallResult);
+
+    HRESULT ExecMethodAsync(
+        [in] const BSTR strObjectPath,
+        [in] const BSTR strMethodName,
+        [in] long lFlags,
+        [in] IWbemContext *pCtx,
+        [in] IWbemClassObject *pInParams,
+        [in] IWbemObjectSink *pResponseHandler);
+};
+
+[
+    object,
+    restricted,
+    uuid(027947e1-d731-11ce-a357-000000000001)
+]
+interface IEnumWbemClassObject : IUnknown
+{
+    HRESULT Reset();
+
+    HRESULT Next(
+        [in] long lTimeout,
+        [in] ULONG uCount,
+        [out, size_is(uCount), length_is(*puReturned)] IWbemClassObject **apObjects,
+        [out] ULONG *puReturned);
+
+    HRESULT NextAsync(
+        [in] ULONG uCount,
+        [in] IWbemObjectSink *pSink);
+
+    HRESULT Clone(
+        [out] IEnumWbemClassObject **ppEnum);
+
+    HRESULT Skip(
+        [in] long lTimeout,
+        [in] ULONG nCount);
+};
index 97fd4ac..4139f51 100644 (file)
@@ -21,6 +21,8 @@ import "propidl.idl";
 import "objidl.idl";
 import "ocidl.idl";
 
+cpp_quote("#define WINCODEC_SDK_VERSION 0x0236")
+
 #define CODEC_FORCE_DWORD 0x7fffffff
 
 typedef enum WICDecodeOptions {
@@ -158,6 +160,7 @@ cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppGray, 0x6fddc324,0x4e03,0x4bfe,0x
 
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppBGR555, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x09);")
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppBGR565, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0a);")
+cpp_quote("DEFINE_GUID(GUID_WICPixelFormat16bppBGRA5551, 0x05ec7c2b,0xf1e6,0x4961,0xad,0x46,0xe1,0xcc,0x81,0x0a,0x87,0xd2);")
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat24bppBGR, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0c);")
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppBGR, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0e);")
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppBGRA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x0f);")
@@ -165,6 +168,9 @@ cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppPBGRA, 0x6fddc324,0x4e03,0x4bfe,0
 
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat48bppRGB, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x15);")
 cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppRGBA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x16);")
+cpp_quote("DEFINE_GUID(GUID_WICPixelFormat64bppPRGBA, 0x6fddc324,0x4e03,0x4bfe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x17);")
+
+cpp_quote("DEFINE_GUID(GUID_WICPixelFormat32bppCMYK, 0x6fddc324,0x4e03,0x4fbe,0xb1,0x85,0x3d,0x77,0x76,0x8d,0xc9,0x1c);")
 
 typedef struct WICRect {
     INT X;
@@ -184,6 +190,7 @@ typedef struct WICBitmapPattern {
 typedef UINT32 WICColor;
 
 cpp_quote("#define WINCODEC_ERR_WRONGSTATE 0x88982f04")
+cpp_quote("#define WINCODEC_ERR_VALUEOUTOFRANGE 0x88982f05")
 cpp_quote("#define WINCODEC_ERR_NOTINITIALIZED 0x88982f0c")
 cpp_quote("#define WINCODEC_ERR_CODECNOTHUMBNAIL 0x88982f44")
 cpp_quote("#define WINCODEC_ERR_PALETTEUNAVAILABLE 0x88982f45")
@@ -194,10 +201,6 @@ cpp_quote("#define WINCODEC_ERR_UNSUPPORTEDOPERATION 0x88982f81")
 cpp_quote("#define WINCODEC_ERR_INSUFFICIENTBUFFER 0x88982f8c")
 
 interface IWICPalette;
-interface IWICColorTransform;
-interface IWICFastMetadataEncoder;
-interface IWICMetadataQueryReader;
-interface IWICMetadataQueryWriter;
 
 [
     object,
@@ -387,6 +390,42 @@ interface IWICComponentInfo : IUnknown
         [out] UINT *pcchActual);
 }
 
+[
+    object,
+    uuid(30989668-e1c9-4597-b395-458eedb808df)
+]
+interface IWICMetadataQueryReader : IUnknown
+{
+    HRESULT GetContainerFormat(
+        [out] GUID *pguidContainerFormat);
+
+    HRESULT GetLocation(
+        [in] UINT cchMaxLength,
+        [in, out, unique, size_is(cchMaxLength)] WCHAR *wzNamespace,
+        [out] UINT *pcchActualLength);
+
+    HRESULT GetMetadataByName(
+        [in] LPCWSTR wzName,
+        [in, out, unique] PROPVARIANT *pvarValue);
+
+    HRESULT GetEnumerator(
+        [out] IEnumString **ppIEnumString);
+}
+
+[
+    object,
+    uuid(a721791a-0def-4d06-bd91-2118bf1db10b)
+]
+interface IWICMetadataQueryWriter : IWICMetadataQueryReader
+{
+    HRESULT SetMetadataByName(
+        [in] LPCWSTR wzName,
+        [in] const PROPVARIANT *pvarValue);
+
+    HRESULT RemoveMetadataByName(
+        [in] LPCWSTR wzName);
+}
+
 [
     object,
     uuid(3b16811b-6a43-4ec9-a813-3d930c13b940)
@@ -708,6 +747,31 @@ interface IWICBitmapClipper : IWICBitmapSource
         [in] const WICRect *prc);
 }
 
+[
+    object,
+    uuid(b66f034f-d0e2-40ab-b436-6de39e321a94)
+]
+interface IWICColorTransform : IWICBitmapSource
+{
+    HRESULT Initialize(
+        [in] IWICBitmapSource *pIBitmapSource,
+        [in] IWICColorContext *pIContextSource,
+        [in] IWICColorContext *pIContextDest,
+        [in] REFWICPixelFormatGUID pixelFmtDest);
+}
+
+[
+    object,
+    uuid(b84e2c09-78c9-4ac4-8bd3-524ae1663a2f)
+]
+interface IWICFastMetadataEncoder : IUnknown
+{
+    HRESULT Commit();
+
+    HRESULT GetMetadataQueryWriter(
+        [out] IWICMetadataQueryWriter **ppIMetadataQueryWriter);
+}
+
 cpp_quote("DEFINE_GUID(CLSID_WICImagingFactory, 0xcacaf262,0x9370,0x4615,0xa1,0x3b,0x9f,0x55,0x39,0xda,0x4c,0x0a);")
 
 [
diff --git a/reactos/include/psdk/winsxs.idl b/reactos/include/psdk/winsxs.idl
new file mode 100644 (file)
index 0000000..c2c38f2
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2010 Hans Leidekker for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+import "objidl.idl";
+
+interface IAssemblyCache;
+interface IAssemblyCacheItem;
+
+typedef struct _FUSION_INSTALL_REFERENCE_
+{
+    DWORD   cbSize;
+    DWORD   dwFlags;
+    GUID    guidScheme;
+    LPCWSTR szIdentifier;
+    LPCWSTR szNonCannonicalData;
+} FUSION_INSTALL_REFERENCE, *LPFUSION_INSTALL_REFERENCE;
+
+typedef struct _ASSEMBLY_INFO
+{
+    ULONG          cbAssemblyInfo;
+    DWORD          dwAssemblyFlags;
+    ULARGE_INTEGER uliAssemblySizeInKB;
+    LPWSTR         pszCurrentAssemblyPathBuf;
+    ULONG          cchBuf;
+} ASSEMBLY_INFO;
+
+typedef const struct _FUSION_INSTALL_REFERENCE_ *LPCFUSION_INSTALL_REFERENCE;
+
+[
+    object,
+    uuid(e707dcde-d1cd-11d2-bab9-00c04f8eceae),
+    pointer_default(unique),
+    local
+]
+interface IAssemblyCache : IUnknown
+{
+    HRESULT UninstallAssembly(
+        [in] DWORD flags,
+        [in] LPCWSTR name,
+        [in] LPCFUSION_INSTALL_REFERENCE ref,
+        [out, optional] ULONG *disp);
+
+    HRESULT QueryAssemblyInfo(
+        [in] DWORD flags,
+        [in] LPCWSTR name,
+        [in, out] ASSEMBLY_INFO *info);
+
+    HRESULT CreateAssemblyCacheItem(
+        [in] DWORD flags,
+        [in] PVOID reserved,
+        [out] IAssemblyCacheItem **item,
+        [in, optional] LPCWSTR name);
+
+    HRESULT Reserved(
+        [out] IUnknown **reserved);
+
+    HRESULT InstallAssembly(
+        [in] DWORD flags,
+        [in] LPCWSTR path,
+        [in] LPCFUSION_INSTALL_REFERENCE ref);
+}
+
+[
+    object,
+    uuid(9e3aaeb4-d1cd-11d2-bab9-00c04f8eceae),
+    pointer_default(unique),
+    local
+]
+interface IAssemblyCacheItem : IUnknown
+{
+    HRESULT CreateStream(
+        [in] DWORD flags,
+        [in] LPCWSTR name,
+        [in] DWORD format,
+        [in] DWORD format_flags,
+        [out] IStream **stream,
+        [in, optional] ULARGE_INTEGER *max_size);
+
+    HRESULT Commit(
+        [in] DWORD flags,
+        [out, optional] ULONG *disp);
+
+    HRESULT AbortItem();
+}
+
+cpp_quote("HRESULT WINAPI CreateAssemblyCache(IAssemblyCache**,DWORD);")
index 27a3d5f..1989cd4 100644 (file)
  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
-cpp_quote("DEFINE_GUID(CLSID_AutomaticUpdates, 0xbfe18e9c,0x6d87,0x4450,0xb3,0x7c,0xe0,0x2f,0x0b,0x37,0x38,0x03);")
-cpp_quote("DEFINE_GUID(CLSID_UpdateSession, 0x4cb43d7f,0x7eee,0x4906,0x86,0x98,0x60,0xda,0x1c,0x38,0xf2,0xfe);")
-
 import "oaidl.idl";
 
-interface IAutomaticUpdates;
-interface IAutomaticUpdatesSettings;
-interface IDownloadJob;
-interface IDownloadResult;
-interface IInstallationJob;
-interface IInstallationResult;
-interface ISearchJob;
-interface ISearchResult;
+#ifndef __WIDL__
+#define threading(model)
+#define progid(str)
+#define vi_progid(str)
+#endif
+
+[
+    helpstring("WUAPI 2.0 Type Library"),
+    uuid(b596cc9f-56e5-419e-a622-e01bb457431e),
+    version(2.0)
+]
+library WUApiLib {
+
+importlib("stdole2.tlb");
+
+interface ICategoryCollection;
+interface IStringCollection;
 interface IUpdateCollection;
 interface IUpdateDownloader;
-interface IUpdateHistoryEntryCollection;
 interface IUpdateInstaller;
 interface IUpdateSearcher;
-interface IUpdateSession;
-interface IWebProxy;
 
 typedef [public] enum tagDownloadPriority
 {
@@ -52,6 +55,126 @@ typedef [public] enum tagServerSelection
     ssOthers        = 3,
 } ServerSelection;
 
+typedef [public] enum tagAutomaticUpdatesNotificationLevel
+{
+    aunlNotConfigured,
+    aunlDisabled,
+    aunlNotifyBeforeDownload,
+    aunlNotifyBeforeInstallation,
+    aunlScheduledInstallation,
+} AutomaticUpdatesNotificationLevel;
+
+typedef [public] enum tagAutomaticUpdatesScheduledInstallationDay
+{
+    ausidEveryDay,
+    ausidEverySunday,
+    ausidEveryMonday,
+    ausidEveryTuesday,
+    ausidEveryWednesday,
+    ausidEveryThursday,
+    ausidEveryFriday,
+    ausidEverySaturday,
+} AutomaticUpdatesScheduledInstallationDay;
+
+typedef [public] enum tagDownloadPhase
+{
+    dphInitializing,
+    dphDownloading,
+    dphVerifying,
+} DownloadPhase;
+
+typedef [public] enum tagOperationResultCode
+{
+    orcNotStarted,
+    orcInProgress,
+    orcSucceeded,
+    orcSucceededWithErrors,
+    orcFailed,
+    orcAborted,
+} OperationResultCode;
+
+typedef [public] enum tagUpdateExceptionContext
+{
+    uecGeneral = 1,
+    uecWindowsDriver,
+    uecWindowsInstaller
+} UpdateExceptionContext;
+
+typedef [public] enum tagInstallationImpact
+{
+    iiNormal,
+    iiMinor,
+    iiRequiresExclusiveHandling
+} InstallationImpact;
+
+typedef [public] enum tagInstallationRebootBehavior
+{
+    irbNeverReboots,
+    irbAlwaysRequiresReboot,
+    irbCanRequestReboot
+} InstallationRebootBehavior;
+
+typedef [public] enum tagUpdateType
+{
+    utSoftware = 1,
+    utDriver
+} UpdateType;
+
+typedef [public] enum tagUpdateOperation
+{
+    uoInstallation = 1,
+    uoUninstallation
+} UpdateOperation;
+
+typedef [public] enum tagDeploymentAction
+{
+    daNone,
+    daInstallation,
+    daUninstallation,
+    daDetection
+} DeploymentAction;
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(2ee48f22-af3c-405f-8970-f71be12ee9a2),
+    pointer_default(unique)
+]
+interface IAutomaticUpdatesSettings : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT NotificationLevel( [out, retval] AutomaticUpdatesNotificationLevel *retval );
+
+    [propput, id(0x60020001)]
+    HRESULT NotificationLevel( [in] AutomaticUpdatesNotificationLevel value );
+
+    [propget, id(0x60020002)]
+    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT Required( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT ScheduledInstallationDay( [out, retval] AutomaticUpdatesScheduledInstallationDay *retval );
+
+    [propput, id(0x60020004)]
+    HRESULT ScheduledInstallationDay( [in] AutomaticUpdatesScheduledInstallationDay value );
+
+    [propget, id(0x60020005)]
+    HRESULT ScheduledInstallationTime( [out, retval] LONG *retval );
+
+    [propput, id(0x60020005)]
+    HRESULT ScheduledInstallationTime( [in] LONG value );
+
+    [id(0x60020006)]
+    HRESULT Refresh();
+
+    [id(0x60020007)]
+    HRESULT Save();
+}
+
 [
     object,
     uuid(673425bf-c082-4c7c-bdfd-569464b8e0ce),
@@ -79,6 +202,61 @@ interface IAutomaticUpdates : IDispatch
     HRESULT EnableService();
 }
 
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(174c81fe-aecd-4dae-b8a0-2c6318dd86a8),
+    pointer_default(unique),
+]
+interface IWebProxy : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT Address( [out, retval] BSTR *retval );
+
+    [propput, id(0x60020001)]
+    HRESULT Address( [in] BSTR value );
+
+    [propget, id(0x60020002)]
+    HRESULT BypassList( [out, retval] IStringCollection **retval );
+
+    [propput, id(0x60020002)]
+    HRESULT BypassList( [in] IStringCollection *value );
+
+    [propget, id(0x60020003)]
+    HRESULT BypassProxyOnLocal( [out, retval] VARIANT_BOOL *retval );
+
+    [propput, id(0x60020003)]
+    HRESULT BypassProxyOnLocal( [in] VARIANT_BOOL value );
+
+    [propget, id(0x60020004)]
+    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020005)]
+    HRESULT UserName( [out, retval] BSTR *retval );
+
+    [propput, id(0x60020005)]
+    HRESULT UserName( [in] BSTR value );
+
+    [id(0x60020006)]
+    HRESULT SetPassword( [in] BSTR value );
+
+    [id(0x60020007)]
+    HRESULT PromptForCredentials( [in, unique] IUnknown *parentWindow,
+                                  [in] BSTR title );
+
+    [restricted, id(0x60020008)]
+    HRESULT PromptForCredentialsFromHwnd( [in, unique] HWND parentWindow,
+                                          [in] BSTR title );
+
+    [propget, id(0x60020009)]
+    HRESULT AutoDetect( [out, retval] VARIANT_BOOL *retval );
+
+    [propput, id(0x60020009)]
+    HRESULT AutoDetect( [in] VARIANT_BOOL value );
+}
+
 [
     object,
     uuid(816858a4-260d-4260-933a-2585f1abc76b),
@@ -119,6 +297,566 @@ interface IUpdateSession : IDispatch
         [out, retval] IUpdateInstaller **retval);
 }
 
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(7c907864-346c-4aeb-8f3f-57da289f969f),
+    pointer_default(unique),
+]
+interface IImageInformation : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT AltText( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT Height( [out, retval] LONG *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT Source( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT Width( [out, retval] LONG *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(81ddc1b8-9d35-47a6-b471-5b80f519223b),
+    pointer_default(unique),
+]
+interface ICategory : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Name( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020001)]
+    HRESULT CategoryID( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT Children( [out, retval] ICategoryCollection **retval );
+
+    [propget, id(0x60020003)]
+    HRESULT Description( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT Image( [out, retval] IImageInformation **retval );
+
+    [propget, id(0x60020005)]
+    HRESULT Order( [out, retval] LONG *retval );
+
+    [propget, id(0x60020006)]
+    HRESULT Parent( [out, retval] ICategory **retval );
+
+    [propget, id(0x60020007)]
+    HRESULT Type( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020008)]
+    HRESULT Updates( [out, retval] IUpdateCollection **retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(3a56bfb8-576c-43f7-9335-fe4838fd7e37),
+    pointer_default(unique),
+]
+interface ICategoryCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                [out, retval] ICategory **retval );
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _NewEnum( [out, retval] IUnknown **retval );
+
+    [propget, id(0x60020001)]
+    HRESULT Count( [out, retval] LONG *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(eff90582-2ddc-480f-a06d-60f3fbc362c3),
+    pointer_default(unique),
+    hidden
+]
+interface IStringCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                  [out, retval] BSTR *retval );
+
+    [propput, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                [in] BSTR value );
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _NewEnum( [out, retval] IUnknown **retval );
+
+    [propget, id(0x60020001)]
+    HRESULT Count( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
+
+    [id(0x60020003)]
+    HRESULT Add( [in] BSTR value,
+                 [out, retval] LONG *retval );
+
+    [id(0x60020004)]
+    HRESULT Clear();
+
+    [id(0x60020005)]
+    HRESULT Copy( [out, retval] IStringCollection **retval );
+
+    [id(0x60020006)]
+    HRESULT Insert( [in] LONG index,
+                    [in] BSTR value );
+
+    [id(0x60020007)]
+    HRESULT RemoveAt( [in] LONG index );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(a376dd5e-09d4-427f-af7c-fed5b6e1c1d6),
+    pointer_default(unique),
+]
+interface IUpdateException : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Message( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020001)]
+    HRESULT HResult( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT Context( [out, retval] UpdateExceptionContext *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(503626a3-8e14-4729-9355-0fe664bd2321),
+    pointer_default(unique),
+]
+interface IUpdateExceptionCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                  [out, retval] IUpdateException **retval );
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _NewEnum( [out, retval] IUnknown **retval );
+
+    [propget, id(0x60020001)]
+    HRESULT Count( [out, retval] LONG *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(46297823-9940-4c09-aed9-cd3ea6d05968),
+    pointer_default(unique)
+]
+interface IUpdateIdentity : IDispatch
+{
+    [propget, id(0x60020002)]
+    HRESULT RevisionNumber( [out, retval] LONG *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT UpdateID( [out, retval] BSTR *retval );
+}
+
+[
+    ,
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(d9a59339-e245-4dbd-9686-4d5763e39624),
+    pointer_default(unique),
+]
+interface IInstallationBehavior : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT CanRequestUserInput( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT Impact( [out, retval] InstallationImpact *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT RebootBehavior( [out, retval] InstallationRebootBehavior *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT RequiresNetworkConnectivity( [out, retval] VARIANT_BOOL *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(54a2cb2d-9a0c-48b6-8a50-9abb69ee2d02),
+    pointer_default(unique),
+]
+interface IUpdateDownloadContent : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT DownloadUrl( [out, retval] BSTR *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(bc5513c8-b3b8-4bf7-a4d4-361c0d8c88ba),
+    pointer_default(unique),
+]
+interface IUpdateDownloadContentCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                  [out, retval] IUpdateDownloadContent **retval );
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _NewEnum( [out, retval] IUnknown **retval );
+
+    [propget, id(0x60020001)]
+    HRESULT Count( [out, retval] LONG *retval );
+}
+
+[
+
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(6a92b07a-d821-4682-b423-5c805022cc4d),
+    pointer_default(unique),
+]
+interface IUpdate : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Title( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020001)]
+    HRESULT AutoSelectOnWebSites( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT BundledUpdates( [out, retval] IUpdateCollection **retval );
+
+    [propget, id(0x60020003)]
+    HRESULT CanRequireSource( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT Categories( [out, retval] ICategoryCollection **retval );
+
+    [propget, id(0x60020005)]
+    HRESULT Deadline( [out, retval] VARIANT *retval );
+
+    [propget, id(0x60020006)]
+    HRESULT DeltaCompressedContentAvailable( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020007)]
+    HRESULT DeltaCompressedContentPreferred( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020008)]
+    HRESULT Description( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020009)]
+    HRESULT EulaAccepted( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x6002000a)]
+    HRESULT EulaText( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002000b)]
+    HRESULT HandlerID( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002000c)]
+    HRESULT Identity( [out, retval] IUpdateIdentity **retval );
+
+    [propget, id(0x6002000d)]
+    HRESULT Image( [out, retval] IImageInformation **retval );
+
+    [propget, id(0x6002000e)]
+    HRESULT InstallationBehavior( [out, retval] IInstallationBehavior **retval );
+
+    [propget, id(0x6002000f)]
+    HRESULT IsBeta( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020010)]
+    HRESULT IsDownloaded( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020011)]
+    HRESULT IsHidden( [out, retval] VARIANT_BOOL *retval );
+
+    [propput, id(0x60020011)]
+    HRESULT IsHidden( [in] VARIANT_BOOL value );
+
+    [propget, id(0x60020012)]
+    HRESULT IsInstalled( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020013)]
+    HRESULT IsMandatory( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020014)]
+    HRESULT IsUninstallable( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020015)]
+    HRESULT Languages( [out, retval] IStringCollection **retval );
+
+    [propget, id(0x60020016)]
+    HRESULT LastDeploymentChangeTime( [out, retval] DATE *retval );
+
+    [propget, id(0x60020017)]
+    HRESULT MaxDownloadSize( [out, retval] DECIMAL *retval );
+
+    [propget, id(0x60020018)]
+    HRESULT MinDownloadSize( [out, retval] DECIMAL *retval );
+
+    [propget, id(0x60020019)]
+    HRESULT MoreInfoUrls( [out, retval] IStringCollection **retval );
+
+    [propget, id(0x6002001a)]
+    HRESULT MsrcSeverity( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002001b)]
+    HRESULT RecommendedCpuSpeed( [out, retval] LONG *retval );
+
+    [propget, id(0x6002001c)]
+    HRESULT RecommendedHardDiskSpace( [out, retval] LONG *retval );
+
+    [propget, id(0x6002001d)]
+    HRESULT RecommendedMemory( [out, retval] LONG *retval );
+
+    [propget, id(0x6002001e)]
+    HRESULT ReleaseNotes( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002001f)]
+    HRESULT SecurityBulletinIDs( [out, retval] IStringCollection **retval );
+
+    [propget, id(0x60020021)]
+    HRESULT SupersededUpdateIDs( [out, retval] IStringCollection **retval );
+
+    [propget, id(0x60020022)]
+    HRESULT SupportUrl( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020023)]
+    HRESULT Type( [out, retval] UpdateType *retval );
+
+    [propget, id(0x60020024)]
+    HRESULT UninstallationNotes( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020025)]
+    HRESULT UninstallationBehavior( [out, retval] IInstallationBehavior **retval );
+
+    [propget, id(0x60020026)]
+    HRESULT UninstallationSteps( [out, retval] IStringCollection **retval );
+
+    [propget, id(0x60020028)]
+    HRESULT KBArticleIDs( [out, retval] IStringCollection **retval );
+
+    [id(0x60020027)]
+    HRESULT AcceptEula();
+
+    [propget, id(0x60020029)]
+    HRESULT DeploymentAction( [out, retval] DeploymentAction *retval );
+
+    [id(0x6002002a)]
+    HRESULT CopyFromCache( [in, ref] BSTR path,
+                           [in] VARIANT_BOOL toExtractCabFiles );
+
+    [propget, id(0x6002002b)]
+    HRESULT DownloadPriority( [out, retval] DownloadPriority *retval );
+
+    [propget, id(0x6002002c)]
+    HRESULT DownloadContents( [out, retval] IUpdateDownloadContentCollection **retval );
+}
+
+[
+
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(07f7438c-7709-4ca5-b518-91279288134e),
+    pointer_default(unique),
+    hidden
+]
+interface IUpdateCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                  [out, retval] IUpdate **retval );
+
+    [propput, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                  [in] IUpdate *value );
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _NewEnum( [out, retval] IUnknown **retval );
+
+    [propget, id(0x60020001)]
+    HRESULT Count( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
+
+    [id(0x60020003)]
+    HRESULT Add( [in] IUpdate *value,
+                 [out, retval] LONG *retval );
+
+    [id(0x60020004)]
+    HRESULT Clear();
+
+    [id(0x60020005)]
+    HRESULT Copy( [out, retval] IUpdateCollection **retval );
+
+    [id(0x60020006)]
+    HRESULT Insert( [in] LONG index,
+                [in] IUpdate *value );
+
+    [id(0x60020007)]
+    HRESULT RemoveAt( [in] LONG index );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(7366ea16-7a1a-4ea2-b042-973d3e9cd99b),
+    pointer_default(unique),
+]
+interface ISearchJob : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT AsyncState( [out, retval] VARIANT *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
+
+    [id(0x60020003)]
+    HRESULT CleanUp();
+
+    [id(0x60020004)]
+    HRESULT RequestAbort();
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(d40cff62-e08c-4498-941a-01e25f0fd33c),
+    pointer_default(unique),
+]
+interface ISearchResult : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT RootCategories( [out, retval] ICategoryCollection **retval );
+
+    [propget, id(0x60020003)]
+    HRESULT Updates( [out, retval] IUpdateCollection **retval );
+
+    [propget, id(0x60020004)]
+    HRESULT Warnings( [out, retval] IUpdateExceptionCollection **retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(be56a644-af0e-4e0e-a311-c1d8e695cbff),
+    pointer_default(unique),
+]
+interface IUpdateHistoryEntry : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT Operation( [out, retval] UpdateOperation *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT HResult( [out, retval] LONG *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT Date( [out, retval] DATE *retval );
+
+    [propget, id(0x60020005)]
+    HRESULT UpdateIdentity( [out, retval] IUpdateIdentity **retval );
+
+    [propget, id(0x60020006)]
+    HRESULT Title( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020007)]
+    HRESULT Description( [out, retval] BSTR *retval );
+
+    [propget, id(0x60020008)]
+    HRESULT UnmappedResultCode( [out, retval] LONG *retval );
+
+    [propget, id(0x60020009)]
+    HRESULT ClientApplicationID( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002000a)]
+    HRESULT ServerSelection( [out, retval] ServerSelection *retval );
+
+    [propget, id(0x6002000b)]
+    HRESULT ServiceID( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002000c)]
+    HRESULT UninstallationSteps( [out, retval] IStringCollection **retval );
+
+    [propget, id(0x6002000d)]
+    HRESULT UninstallationNotes( [out, retval] BSTR *retval );
+
+    [propget, id(0x6002000e)]
+    HRESULT SupportUrl( [out, retval] BSTR *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(a7f04f3c-a290-435b-aadf-a116c3357a5c),
+    pointer_default(unique),
+]
+interface IUpdateHistoryEntryCollection : IDispatch
+{
+    [propget, id(DISPID_VALUE)]
+    HRESULT Item( [in] LONG index,
+                  [out, retval] IUpdateHistoryEntry **retval );
+
+    [propget, id(DISPID_NEWENUM)]
+    HRESULT _NewEnum( [out, retval] IUnknown **retval );
+
+    [propget, id(0x60020001)]
+    HRESULT Count( [out, retval] LONG *retval );
+}
+
 [
     object,
     uuid(8f45abf1-f9ae-4b95-a933-f0f66e5056ea),
@@ -204,6 +942,113 @@ interface IUpdateSearcher : IDispatch
         [in] BSTR value);
 }
 
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(bf99af76-b575-42ad-8aa4-33cbb5477af1),
+    pointer_default(unique),
+]
+interface IUpdateDownloadResult : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT HResult( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(d31a5bac-f719-4178-9dbb-5e2cb47fd18a),
+    pointer_default(unique),
+]
+interface IDownloadProgress : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT CurrentUpdateBytesDownloaded( [out, retval] DECIMAL *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT CurrentUpdateBytesToDownload( [out, retval] DECIMAL *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT CurrentUpdateIndex( [out, retval] LONG *retval );
+
+    [propget, id(0x60020004)]
+    HRESULT PercentComplete( [out, retval] LONG *retval );
+
+    [propget, id(0x60020005)]
+    HRESULT TotalBytesDownloaded( [out, retval] DECIMAL *retval );
+
+    [propget, id(0x60020006)]
+    HRESULT TotalBytesToDownload( [out, retval] DECIMAL *retval );
+
+    [id(0x60020007)]
+    HRESULT GetUpdateResult( [in] LONG updateIndex,
+                             [out, retval] IUpdateDownloadResult **retval );
+
+
+    [propget, id(0x60020008)]
+    HRESULT CurrentUpdateDownloadPhase( [out, retval] DownloadPhase *retval );
+
+    [propget, id(0x60020009)]
+    HRESULT CurrentUpdatePercentComplete( [out, retval] LONG *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(c574de85-7358-43f6-aae8-8697e62d8ba7),
+    pointer_default(unique),
+]
+interface IDownloadJob : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT AsyncState( [out, retval] VARIANT *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT Updates( [out, retval] IUpdateCollection **retval );
+
+    [id(0x60020004)]
+    HRESULT CleanUp();
+
+    [id(0x60020005)]
+    HRESULT GetProgress( [out, retval] IDownloadProgress **retval );
+
+    [id(0x60020006)]
+    HRESULT RequestAbort();
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(daa4fdd0-4727-4dbe-a1e7-745dca317144),
+    pointer_default(unique),
+]
+interface IDownloadResult : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT HResult( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
+
+    [id(0x60020003)]
+    HRESULT GetUpdateResult( [in] LONG updateIndex,
+                             [out, retval] IUpdateDownloadResult **retval );
+}
+
 [
     object,
     uuid(68f1c6f9-7ecc-4666-a464-247fe12496c3),
@@ -261,6 +1106,103 @@ interface IUpdateDownloader : IDispatch
         [out, retval] IDownloadResult **retval);
 }
 
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(d940f0f8-3cbb-4fd0-993f-471e7f2328ad),
+    pointer_default(unique),
+]
+interface IUpdateInstallationResult : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT HResult( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT RebootRequired( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(345c8244-43a3-4e32-a368-65f073b76f36),
+    pointer_default(unique),
+]
+interface IInstallationProgress : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT CurrentUpdateIndex( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT CurrentUpdatePercentComplete( [out, retval] LONG *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT PercentComplete( [out, retval] LONG *retval );
+
+    [id(0x60020004)]
+    HRESULT GetUpdateResult( [in] LONG updateIndex,
+                             [out, retval] IUpdateInstallationResult **retval );
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(5c209f0b-bad5-432a-9556-4699bed2638a),
+    pointer_default(unique),
+]
+interface IInstallationJob : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT AsyncState( [out, retval] VARIANT *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT Updates( [out, retval] IUpdateCollection **retval );
+
+    [id(0x60020004)]
+    HRESULT CleanUp();
+
+    [id(0x60020005)]
+    HRESULT GetProgress( [out, retval] IInstallationProgress **retval );
+
+    [id(0x60020006)]
+    HRESULT RequestAbort();
+}
+
+[
+    object,
+    oleautomation,
+    dual,
+    nonextensible,
+    uuid(a43c56d6-7451-48d4-af96-b6cd2d0d9b7a),
+    pointer_default(unique),
+]
+interface IInstallationResult : IDispatch
+{
+    [propget, id(0x60020001)]
+    HRESULT HResult( [out, retval] LONG *retval );
+
+    [propget, id(0x60020002)]
+    HRESULT RebootRequired( [out, retval] VARIANT_BOOL *retval );
+
+    [propget, id(0x60020003)]
+    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
+
+    [id(0x60020004)]
+    HRESULT GetUpdateResult( [in] LONG updateIndex,
+                             [out, retval] IUpdateInstallationResult **retval );
+}
+
 [
     object,
     uuid(7b929c68-ccdc-4226-96b1-8724600b54c2),
@@ -357,3 +1299,23 @@ interface IUpdateInstaller : IDispatch
     HRESULT RebootRequiredBeforeInstallation(
         [out, retval] VARIANT_BOOL *retval);
 }
+
+[
+    helpstring("AutomaticUpdates Class"),
+    threading(both),
+    progid("Microsoft.Update.AutoUpdate.1"),
+    vi_progid("Microsoft.Update.AutoUpdate"),
+    uuid(bfe18e9c-6d87-4450-b37c-e02f0b373803)
+]
+coclass AutomaticUpdates { interface IAutomaticUpdates; }
+
+[
+    helpstring("UpdateSession Class"),
+    threading(both),
+    progid("Microsoft.Update.Session.1"),
+    vi_progid("Microsoft.Update.Session"),
+    uuid(4cb43d7f-7eee-4906-8698-60da1c38f2fe)
+]
+coclass UpdateSession { interface IUpdateSession; }
+
+} /* WUApiLib */