Add winapi-family and some missing Vista+ stuff to aclui.h header.
IDL interface activaut.idl for Active-Script.
Add new idl to Makefile.am file.  Makefile.in needs to be regenerated with the correct automake FU


git-svn-id: svn+ssh://svn.code.sf.net/p/mingw-w64/code/trunk@6029 4407c894-4637-0410-b4f5-ada5f102cad1
diff --git a/mingw-w64-headers/include/aclui.h b/mingw-w64-headers/include/aclui.h
index 5975ac2..9116c6f 100644
--- a/mingw-w64-headers/include/aclui.h
+++ b/mingw-w64-headers/include/aclui.h
@@ -1,14 +1,18 @@
 /**
- * This file has no copyright assigned and is placed in the Public Domain.
  * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
  */
 #ifndef _ACLUI_H_
 #define _ACLUI_H_
 
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
+
 #include <objbase.h>
 #include <commctrl.h>
 #include <accctrl.h>
+#include <authz.h>
 
 #ifndef _ACLUI_
 #define ACLUIAPI DECLSPEC_IMPORT WINAPI
@@ -51,7 +55,21 @@
 #define SI_RESET_SACL __MSABI_LONG(0x00080000)
 #define SI_RESET_OWNER __MSABI_LONG(0x00100000)
 #define SI_NO_ADDITIONAL_PERMISSION __MSABI_LONG(0x00200000)
+#if NTDDI_VERSION >= 0x06000000
+#define SI_VIEW_ONLY __MSABI_LONG(0x00400000)
+#define SI_PERMS_ELEVATION_REQUIRED __MSABI_LONG(0x01000000)
+#define SI_AUDITS_ELEVATION_REQUIRED __MSABI_LONG(0x02000000)
+#define SI_OWNER_ELEVATION_REQUIRED __MSABI_LONG(0x04000000)
+#endif
+#if NTDDI_VERSION >= 0x06020000
+#define SI_SCOPE_ELEVATION_REQUIRED __MSABI_LONG(0x08000000)
+#endif
 #define SI_MAY_WRITE __MSABI_LONG(0x10000000)
+#if NTDDI_VERSION >= 0x06020000
+#define SI_ENABLE_EDIT_ATTRIBUTE_CONDITION __MSABI_LONG(0x20000000)
+#define SI_ENABLE_CENTRAL_POLICY __MSABI_LONG(0x40000000)
+#define SI_DISABLE_DENY_ACE __MSABI_LONG(0x80000000)
+#endif
 
 #define SI_EDIT_ALL (SI_EDIT_PERMS | SI_EDIT_OWNER | SI_EDIT_AUDITS)
 
@@ -60,7 +78,7 @@
     ACCESS_MASK mask;
     LPCWSTR pszName;
     DWORD dwFlags;
-  } SI_ACCESS,*PSI_ACCESS;
+  } SI_ACCESS, *PSI_ACCESS;
 
 #define SI_ACCESS_SPECIFIC __MSABI_LONG(0x00010000)
 #define SI_ACCESS_GENERAL __MSABI_LONG(0x00020000)
@@ -71,83 +89,194 @@
     const GUID *pguid;
     ULONG dwFlags;
     LPCWSTR pszName;
-  } SI_INHERIT_TYPE,*PSI_INHERIT_TYPE;
+  } SI_INHERIT_TYPE, *PSI_INHERIT_TYPE;
 
   typedef enum _SI_PAGE_TYPE {
-    SI_PAGE_PERM=0,SI_PAGE_ADVPERM,SI_PAGE_AUDIT,SI_PAGE_OWNER,SI_PAGE_EFFECTIVE,
+    SI_PAGE_PERM=0,
+    SI_PAGE_ADVPERM,
+    SI_PAGE_AUDIT,
+    SI_PAGE_OWNER,
+    SI_PAGE_EFFECTIVE
+#if NTDDI_VERSION >= 0x06000000
+    , SI_PAGE_TAKEOWNERSHIP
+#endif
+#if NTDDI_VERSION >= 0x06020000
+    , SI_PAGE_SHARE
+#endif
   } SI_PAGE_TYPE;
 
-#define PSPCB_SI_INITDIALOG (WM_USER+1)
+  typedef enum _SI_PAGE_ACTIVATED {
+    SI_SHOW_DEFAULT=0,
+    SI_SHOW_PERM_ACTIVATED,
+    SI_SHOW_AUDIT_ACTIVATED,
+    SI_SHOW_OWNER_ACTIVATED,
+    SI_SHOW_EFFECTIVE_ACTIVATED,
+    SI_SHOW_SHARE_ACTIVATED,
+    SI_SHOW_CENTRAL_POLICY_ACTIVATED,
+  } SI_PAGE_ACTIVATED;
+
+#define GET_PAGE_TYPE(X) (UINT) ((X) &0x0000ffff)
+#define GET_ACTIVATION_TYPE(Y) (UINT) (((Y) >> 16) &0x0000ffff)
+#define COMBINE_PAGE_ACTIVATION(X, Y) (UINT) (((Y) << 16) | X)
+
+#define DOBJ_RES_CONT __MSABI_LONG(0x00000001)
+#define DOBJ_RES_ROOT __MSABI_LONG(0x00000002)
+#define DOBJ_VOL_NTACLS __MSABI_LONG(0x00000004)
+#define DOBJ_COND_NTACLS __MSABI_LONG(0x00000008)
+#define DOBJ_RIBBON_LAUNCH __MSABI_LONG(0x00000010)
+
+#define PSPCB_SI_INITDIALOG (WM_USER + 1)
+
 #undef INTERFACE
 #define INTERFACE ISecurityInformation
-  DECLARE_INTERFACE_(ISecurityInformation,IUnknown) {
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD(GetObjectInformation) (THIS_ PSI_OBJECT_INFO pObjectInfo) PURE;
-    STDMETHOD(GetSecurity) (THIS_ SECURITY_INFORMATION RequestedInformation,PSECURITY_DESCRIPTOR *ppSecurityDescriptor,WINBOOL fDefault) PURE;
-    STDMETHOD(SetSecurity) (THIS_ SECURITY_INFORMATION SecurityInformation,PSECURITY_DESCRIPTOR pSecurityDescriptor) PURE;
-    STDMETHOD(GetAccessRights) (THIS_ const GUID *pguidObjectType,DWORD dwFlags,PSI_ACCESS *ppAccess,ULONG *pcAccesses,ULONG *piDefaultAccess) PURE;
-    STDMETHOD(MapGeneric) (THIS_ const GUID *pguidObjectType,UCHAR *pAceFlags,ACCESS_MASK *pMask) PURE;
-    STDMETHOD(GetInheritTypes) (THIS_ PSI_INHERIT_TYPE *ppInheritTypes,ULONG *pcInheritTypes) PURE;
-    STDMETHOD(PropertySheetPageCallback)(THIS_ HWND hwnd,UINT uMsg,SI_PAGE_TYPE uPage) PURE;
-  };
-  typedef ISecurityInformation *LPSECURITYINFO;
 
+  DECLARE_INTERFACE_IID_ (ISecurityInformation, IUnknown, "965FC360-16FF-11d0-91CB-00AA00BBB723") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD (GetObjectInformation) (THIS_ PSI_OBJECT_INFO pObjectInfo) PURE;
+    STDMETHOD (GetSecurity) (THIS_ SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR *ppSecurityDescriptor, WINBOOL fDefault) PURE;
+    STDMETHOD (SetSecurity) (THIS_ SECURITY_INFORMATION SecurityInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor) PURE;
+    STDMETHOD (GetAccessRights) (THIS_ const GUID *pguidObjectType, DWORD dwFlags, PSI_ACCESS *ppAccess, ULONG *pcAccesses, ULONG *piDefaultAccess) PURE;
+    STDMETHOD (MapGeneric) (THIS_ const GUID *pguidObjectType, UCHAR *pAceFlags, ACCESS_MASK *pMask) PURE;
+    STDMETHOD (GetInheritTypes) (THIS_ PSI_INHERIT_TYPE *ppInheritTypes, ULONG *pcInheritTypes) PURE;
+    STDMETHOD (PropertySheetPageCallback) (THIS_ HWND hwnd, UINT uMsg, SI_PAGE_TYPE uPage) PURE;
+  };
+
+  typedef ISecurityInformation *LPSECURITYINFO;
 #undef INTERFACE
 #define INTERFACE ISecurityInformation2
-  DECLARE_INTERFACE_(ISecurityInformation2,IUnknown) {
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD_(WINBOOL,IsDaclCanonical) (THIS_ PACL pDacl) PURE;
-    STDMETHOD(LookupSids) (THIS_ ULONG cSids,PSID *rgpSids,LPDATAOBJECT *ppdo) PURE;
+
+  DECLARE_INTERFACE_IID_ (ISecurityInformation2, IUnknown, "c3ccfdb4-6f88-11d2-a3ce-00c04fb1782a") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD_ (WINBOOL, IsDaclCanonical) (THIS_ PACL pDacl) PURE;
+    STDMETHOD (LookupSids) (THIS_ ULONG cSids, PSID *rgpSids, LPDATAOBJECT *ppdo) PURE;
   };
+
   typedef ISecurityInformation2 *LPSECURITYINFO2;
 
-#define CFSTR_ACLUI_SID_INFO_LIST TEXT("CFSTR_ACLUI_SID_INFO_LIST")
+#define CFSTR_ACLUI_SID_INFO_LIST TEXT ("CFSTR_ACLUI_SID_INFO_LIST")
 
   typedef struct _SID_INFO {
     PSID pSid;
     PWSTR pwzCommonName;
     PWSTR pwzClass;
     PWSTR pwzUPN;
-  } SID_INFO,*PSID_INFO;
+  } SID_INFO, *PSID_INFO;
 
   typedef struct _SID_INFO_LIST {
     ULONG cItems;
     SID_INFO aSidInfo[ANYSIZE_ARRAY];
-  } SID_INFO_LIST,*PSID_INFO_LIST;
+  } SID_INFO_LIST, *PSID_INFO_LIST;
 
 #undef INTERFACE
 #define INTERFACE IEffectivePermission
-  DECLARE_INTERFACE_(IEffectivePermission,IUnknown) {
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD(GetEffectivePermission) (THIS_ const GUID *pguidObjectType,PSID pUserSid,LPCWSTR pszServerName,PSECURITY_DESCRIPTOR pSD,POBJECT_TYPE_LIST *ppObjectTypeList,ULONG *pcObjectTypeListLength,PACCESS_MASK *ppGrantedAccessList,ULONG *pcGrantedAccessListLength) PURE;
+
+  DECLARE_INTERFACE_IID_ (IEffectivePermission, IUnknown, "3853DC76-9F35-407c-88A1-D19344365FBC") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD (GetEffectivePermission) (THIS_ const GUID *pguidObjectType, PSID pUserSid, LPCWSTR pszServerName, PSECURITY_DESCRIPTOR pSD, POBJECT_TYPE_LIST *ppObjectTypeList, ULONG *pcObjectTypeListLength, PACCESS_MASK *ppGrantedAccessList, ULONG *pcGrantedAccessListLength) PURE;
   };
+
   typedef IEffectivePermission *LPEFFECTIVEPERMISSION;
 
 #undef INTERFACE
 #define INTERFACE ISecurityObjectTypeInfo
-  DECLARE_INTERFACE_(ISecurityObjectTypeInfo,IUnknown) {
-    STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE;
-    STDMETHOD_(ULONG,AddRef) (THIS) PURE;
-    STDMETHOD_(ULONG,Release) (THIS) PURE;
-    STDMETHOD(GetInheritSource)(SECURITY_INFORMATION si,PACL pACL,PINHERITED_FROM *ppInheritArray) PURE;
+
+  DECLARE_INTERFACE_IID_ (ISecurityObjectTypeInfo, IUnknown, "FC3066EB-79EF-444b-9111-D18A75EBF2FA") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD (GetInheritSource) (SECURITY_INFORMATION si, PACL pACL, PINHERITED_FROM *ppInheritArray) PURE;
   };
+
   typedef ISecurityObjectTypeInfo *LPSecurityObjectTypeInfo;
 
-  EXTERN_GUID(IID_ISecurityInformation,0x965fc360,0x16ff,0x11d0,0x91,0xcb,0x0,0xaa,0x0,0xbb,0xb7,0x23);
-  EXTERN_GUID(IID_ISecurityInformation2,0xc3ccfdb4,0x6f88,0x11d2,0xa3,0xce,0x0,0xc0,0x4f,0xb1,0x78,0x2a);
-  EXTERN_GUID(IID_IEffectivePermission,0x3853dc76,0x9f35,0x407c,0x88,0xa1,0xd1,0x93,0x44,0x36,0x5f,0xbc);
-  EXTERN_GUID(IID_ISecurityObjectTypeInfo,0xfc3066eb,0x79ef,0x444b,0x91,0x11,0xd1,0x8a,0x75,0xeb,0xf2,0xfa);
+#if NTDDI_VERSION >= 0x06000000
+#undef INTERFACE
+#define INTERFACE ISecurityInformation3
+  DECLARE_INTERFACE_IID_ (ISecurityInformation3, IUnknown, "E2CDC9CC-31BD-4f8f-8C8B-B641AF516A1A") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD (GetFullResourceName) (THIS_ LPWSTR *ppszResourceName) PURE;
+    STDMETHOD (OpenElevatedEditor) (THIS_ HWND hWnd, SI_PAGE_TYPE uPage) PURE;
+  };
 
-  HPROPSHEETPAGE ACLUIAPI CreateSecurityPage(LPSECURITYINFO psi);
-  WINBOOL ACLUIAPI EditSecurity(HWND hwndOwner,LPSECURITYINFO psi);
+  typedef ISecurityInformation3 *LPSECURITYINFO3;
+#endif
+
+#if NTDDI_VERSION >= 0x06020000
+  typedef struct _SECURITY_OBJECT {
+    PWSTR pwszName;
+    PVOID pData;
+    DWORD cbData;
+    PVOID pData2;
+    DWORD cbData2;
+    DWORD Id;
+    BOOLEAN fWellKnown;
+  } SECURITY_OBJECT, *PSECURITY_OBJECT;
+
+#define SECURITY_OBJECT_ID_OBJECT_SD 1
+#define SECURITY_OBJECT_ID_SHARE 2
+#define SECURITY_OBJECT_ID_CENTRAL_POLICY 3
+#define SECURITY_OBJECT_ID_CENTRAL_ACCESS_RULE 4
+
+  typedef struct _EFFPERM_RESULT_LIST {
+    BOOLEAN fEvaluated;
+    ULONG cObjectTypeListLength;
+    OBJECT_TYPE_LIST *pObjectTypeList;
+    ACCESS_MASK *pGrantedAccessList;
+  } EFFPERM_RESULT_LIST, *PEFFPERM_RESULT_LIST;
+
+#undef INTERFACE
+#define INTERFACE ISecurityInformation4
+
+  DECLARE_INTERFACE_IID_ (ISecurityInformation4, IUnknown, "EA961070-CD14-4621-ACE4-F63C03E583E4") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD (GetSecondarySecurity) (THIS_ PSECURITY_OBJECT *pSecurityObjects, PULONG pSecurityObjectCount) PURE;
+  };
+
+  typedef ISecurityInformation4 *LPSECURITYINFO4;
+
+#undef INTERFACE
+#define INTERFACE IEffectivePermission
+
+  DECLARE_INTERFACE_IID_ (IEffectivePermission2, IUnknown, "941FABCA-DD47-4FCA-90BB-B0E10255F20D") {
+    STDMETHOD (QueryInterface) (THIS_ REFIID riid, void **ppvObj) PURE;
+    STDMETHOD_ (ULONG, AddRef) (THIS) PURE;
+    STDMETHOD_ (ULONG, Release) (THIS) PURE;
+    STDMETHOD (ComputeEffectivePermissionWithSecondarySecurity) (THIS_ PSID pSid, PSID pDeviceSid, PCWSTR pszServerName, PSECURITY_OBJECT pSecurityObjects, DWORD dwSecurityObjectCount, PTOKEN_GROUPS pUserGroups, PAUTHZ_SID_OPERATION pAuthzUserGroupsOperations, PTOKEN_GROUPS pDeviceGroups, PAUTHZ_SID_OPERATION pAuthzDeviceGroupsOperations, PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION pAuthzUserClaims, PAUTHZ_SECURITY_ATTRIBUTE_OPERATION pAuthzUserClaimsOperations, PAUTHZ_SECURITY_ATTRIBUTES_INFORMATION pAuthzDeviceClaims, PAUTHZ_SECURITY_ATTRIBUTE_OPERATION pAuthzDeviceClaimsOperations, PEFFPERM_RESULT_LIST pEffpermResultLists);
+  };
+
+  typedef IEffectivePermission2 *LPEFFECTIVEPERMISSION2;
+#endif
+
+  EXTERN_GUID (IID_ISecurityInformation, 0x965fc360, 0x16ff, 0x11d0, 0x91, 0xcb, 0x0, 0xaa, 0x0, 0xbb, 0xb7, 0x23);
+  EXTERN_GUID (IID_ISecurityInformation2, 0xc3ccfdb4, 0x6f88, 0x11d2, 0xa3, 0xce, 0x0, 0xc0, 0x4f, 0xb1, 0x78, 0x2a);
+  EXTERN_GUID (IID_IEffectivePermission, 0x3853dc76, 0x9f35, 0x407c, 0x88, 0xa1, 0xd1, 0x93, 0x44, 0x36, 0x5f, 0xbc);
+  EXTERN_GUID (IID_ISecurityObjectTypeInfo, 0xfc3066eb, 0x79ef, 0x444b, 0x91, 0x11, 0xd1, 0x8a, 0x75, 0xeb, 0xf2, 0xfa);
+#if NTDDI_VERSION >= 0x06000000
+  EXTERN_GUID (IID_ISecurityInformation3, 0xe2cdc9cc, 0x31bd, 0x4f8f, 0x8c, 0x8b, 0xb6, 0x41, 0xaf, 0x51, 0x6a, 0x1a);
+#endif
+#if NTDDI_VERSION >= 0x06020000
+  EXTERN_GUID (IID_ISecurityInformation4, 0xea961070, 0xcd14, 0x4621, 0xac, 0xe4, 0xf6, 0x3c, 0x3, 0xe5, 0x83, 0xe4);
+  EXTERN_GUID (IID_IEffectivePermission2, 0x941fabca, 0xdd47, 0x4fca, 0x90, 0xbb, 0xb0, 0xe1, 0x2, 0x55, 0xf2, 0xd);
+#endif
+
+  HPROPSHEETPAGE ACLUIAPI CreateSecurityPage (LPSECURITYINFO psi);
+  WINBOOL ACLUIAPI EditSecurity (HWND hwndOwner, LPSECURITYINFO psi);
+#if NTDDI_VERSION >= 0x06000000
+  HRESULT ACLUIAPI EditSecurityAdvanced (HWND hwndOwner, LPSECURITYINFO psi, SI_PAGE_TYPE uSIPage);
+#endif
 
 #ifdef __cplusplus
 }
 #endif
 #endif
+#endif
diff --git a/mingw-w64-headers/include/activaut.h b/mingw-w64-headers/include/activaut.h
new file mode 100644
index 0000000..3c7cc95
--- /dev/null
+++ b/mingw-w64-headers/include/activaut.h
@@ -0,0 +1,1733 @@
+/*** Autogenerated by WIDL 1.5.29 from activaut.idl - Do not edit ***/
+
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __activaut_h__
+#define __activaut_h__
+
+/* Forward declarations */
+
+#ifndef __IScriptNode_FWD_DEFINED__
+#define __IScriptNode_FWD_DEFINED__
+typedef interface IScriptNode IScriptNode;
+#endif
+
+#ifndef __IScriptEntry_FWD_DEFINED__
+#define __IScriptEntry_FWD_DEFINED__
+typedef interface IScriptEntry IScriptEntry;
+#endif
+
+#ifndef __IScriptScriptlet_FWD_DEFINED__
+#define __IScriptScriptlet_FWD_DEFINED__
+typedef interface IScriptScriptlet IScriptScriptlet;
+#endif
+
+#ifndef __IActiveScriptAuthor_FWD_DEFINED__
+#define __IActiveScriptAuthor_FWD_DEFINED__
+typedef interface IActiveScriptAuthor IActiveScriptAuthor;
+#endif
+
+#ifndef __IActiveScriptAuthorProcedure_FWD_DEFINED__
+#define __IActiveScriptAuthorProcedure_FWD_DEFINED__
+typedef interface IActiveScriptAuthorProcedure IActiveScriptAuthorProcedure;
+#endif
+
+/* Headers for imported files */
+
+#include <ocidl.h>
+#include <oleidl.h>
+#include <oaidl.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * This file is part of the mingw-w64 runtime package.
+ * No warranty is given; refer to the file DISCLAIMER within this package.
+ */
+
+#include <winapifamily.h>
+
+#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
+
+#ifndef __ActivAut_h
+#define __ActivAut_h
+
+
+#ifndef _NO_AUTHOR_GUIDS
+DEFINE_GUID(CATID_ActiveScriptAuthor, 0xaee2a92, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);
+DEFINE_GUID(IID_IActiveScriptAuthor, 0x9c109da0, 0x7006, 0x11d1, 0xb3, 0x6c, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2);
+DEFINE_GUID(IID_IScriptNode, 0xaee2a94, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);
+DEFINE_GUID(IID_IScriptEntry, 0xaee2a95, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);
+DEFINE_GUID(IID_IScriptScriptlet, 0xaee2a96, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);
+DEFINE_GUID(IID_IActiveScriptAuthorProcedure, 0x7e2d4b70, 0xbd9a, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);
+#endif
+
+const DWORD fasaPreferInternalHandler = 1;
+const DWORD fasaSupportInternalHandler = 2;
+const DWORD fasaCaseSensitive = 4;
+
+const DWORD SCRIPT_CMPL_NOLIST = 0;
+const DWORD SCRIPT_CMPL_MEMBERLIST = 1;
+const DWORD SCRIPT_CMPL_ENUMLIST = 2;
+const DWORD SCRIPT_CMPL_PARAMTIP = 4;
+const DWORD SCRIPT_CMPL_GLOBALLIST = 8;
+
+const DWORD SCRIPT_CMPL_ENUM_TRIGGER = 1;
+const DWORD SCRIPT_CMPL_MEMBER_TRIGGER = 2;
+const DWORD SCRIPT_CMPL_PARAM_TRIGGER = 3;
+const DWORD SCRIPT_CMPL_COMMIT = 4;
+
+const DWORD GETATTRTYPE_NORMAL = 0;
+const DWORD GETATTRTYPE_DEPSCAN = 1;
+
+const DWORD GETATTRFLAG_THIS = 0x100;
+const DWORD GETATTRFLAG_HUMANTEXT = 0x8000;
+
+const DWORD SOURCETEXT_ATTR_IDENTIFIER = 0x100;
+const DWORD SOURCETEXT_ATTR_MEMBERLOOKUP = 0x200;
+const DWORD SOURCETEXT_ATTR_THIS = 0x400;
+const DWORD SOURCETEXT_ATTR_HUMANTEXT = 0x8000;
+
+#ifndef __IActiveScriptAuthor_FWD_DEFINED__
+#define __IActiveScriptAuthor_FWD_DEFINED__
+typedef interface IActiveScriptAuthor IActiveScriptAuthor;
+#endif
+
+#ifndef __IScriptNode_FWD_DEFINED__
+#define __IScriptNode_FWD_DEFINED__
+typedef interface IScriptNode IScriptNode;
+#endif
+
+#ifndef __IScriptEntry_FWD_DEFINED__
+#define __IScriptEntry_FWD_DEFINED__
+typedef interface IScriptEntry IScriptEntry;
+#endif
+
+#ifndef __IScriptScriptlet_FWD_DEFINED__
+#define __IScriptScriptlet_FWD_DEFINED__
+typedef interface IScriptScriptlet IScriptScriptlet;
+#endif
+
+typedef WORD SOURCE_TEXT_ATTR;
+/*****************************************************************************
+ * IScriptNode interface
+ */
+#ifndef __IScriptNode_INTERFACE_DEFINED__
+#define __IScriptNode_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IScriptNode, 0x0aee2a94, 0xbcbb, 0x11d0, 0x8c,0x72, 0x00,0xc0,0x4f,0xc2,0xb0,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0aee2a94-bcbb-11d0-8c72-00c04fc2b085")
+IScriptNode : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Alive(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Delete(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetParent(
+        IScriptNode **ppsnParent) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetIndexInParent(
+        ULONG *pisn) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCookie(
+        DWORD *pdwCookie) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNumberOfChildren(
+        ULONG *pcsn) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetChild(
+        ULONG isn,
+        IScriptNode **ppsn) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLanguage(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateChildEntry(
+        ULONG isn,
+        DWORD dwCookie,
+        LPCOLESTR pszDelimiter,
+        IScriptEntry **ppse) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE CreateChildHandler(
+        LPCOLESTR pszDefaultName,
+        LPCOLESTR *prgpszNames,
+        ULONG cpszNames,
+        LPCOLESTR pszEvent,
+        LPCOLESTR pszDelimiter,
+        ITypeInfo *ptiSignature,
+        ULONG iMethodSignature,
+        ULONG isn,
+        DWORD dwCookie,
+        IScriptEntry **ppse) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IScriptNode, 0x0aee2a94, 0xbcbb, 0x11d0, 0x8c,0x72, 0x00,0xc0,0x4f,0xc2,0xb0,0x85)
+#endif
+#else
+typedef struct IScriptNodeVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IScriptNode* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IScriptNode* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IScriptNode* This);
+
+    /*** IScriptNode methods ***/
+    HRESULT (STDMETHODCALLTYPE *Alive)(
+        IScriptNode* This);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IScriptNode* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetParent)(
+        IScriptNode* This,
+        IScriptNode **ppsnParent);
+
+    HRESULT (STDMETHODCALLTYPE *GetIndexInParent)(
+        IScriptNode* This,
+        ULONG *pisn);
+
+    HRESULT (STDMETHODCALLTYPE *GetCookie)(
+        IScriptNode* This,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *GetNumberOfChildren)(
+        IScriptNode* This,
+        ULONG *pcsn);
+
+    HRESULT (STDMETHODCALLTYPE *GetChild)(
+        IScriptNode* This,
+        ULONG isn,
+        IScriptNode **ppsn);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+        IScriptNode* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *CreateChildEntry)(
+        IScriptNode* This,
+        ULONG isn,
+        DWORD dwCookie,
+        LPCOLESTR pszDelimiter,
+        IScriptEntry **ppse);
+
+    HRESULT (STDMETHODCALLTYPE *CreateChildHandler)(
+        IScriptNode* This,
+        LPCOLESTR pszDefaultName,
+        LPCOLESTR *prgpszNames,
+        ULONG cpszNames,
+        LPCOLESTR pszEvent,
+        LPCOLESTR pszDelimiter,
+        ITypeInfo *ptiSignature,
+        ULONG iMethodSignature,
+        ULONG isn,
+        DWORD dwCookie,
+        IScriptEntry **ppse);
+
+    END_INTERFACE
+} IScriptNodeVtbl;
+interface IScriptNode {
+    CONST_VTBL IScriptNodeVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IScriptNode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IScriptNode_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IScriptNode_Release(This) (This)->lpVtbl->Release(This)
+/*** IScriptNode methods ***/
+#define IScriptNode_Alive(This) (This)->lpVtbl->Alive(This)
+#define IScriptNode_Delete(This) (This)->lpVtbl->Delete(This)
+#define IScriptNode_GetParent(This,ppsnParent) (This)->lpVtbl->GetParent(This,ppsnParent)
+#define IScriptNode_GetIndexInParent(This,pisn) (This)->lpVtbl->GetIndexInParent(This,pisn)
+#define IScriptNode_GetCookie(This,pdwCookie) (This)->lpVtbl->GetCookie(This,pdwCookie)
+#define IScriptNode_GetNumberOfChildren(This,pcsn) (This)->lpVtbl->GetNumberOfChildren(This,pcsn)
+#define IScriptNode_GetChild(This,isn,ppsn) (This)->lpVtbl->GetChild(This,isn,ppsn)
+#define IScriptNode_GetLanguage(This,pbstr) (This)->lpVtbl->GetLanguage(This,pbstr)
+#define IScriptNode_CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse) (This)->lpVtbl->CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse)
+#define IScriptNode_CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse) (This)->lpVtbl->CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IScriptNode_QueryInterface(IScriptNode* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IScriptNode_AddRef(IScriptNode* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IScriptNode_Release(IScriptNode* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IScriptNode methods ***/
+static FORCEINLINE HRESULT IScriptNode_Alive(IScriptNode* This) {
+    return This->lpVtbl->Alive(This);
+}
+static FORCEINLINE HRESULT IScriptNode_Delete(IScriptNode* This) {
+    return This->lpVtbl->Delete(This);
+}
+static FORCEINLINE HRESULT IScriptNode_GetParent(IScriptNode* This,IScriptNode **ppsnParent) {
+    return This->lpVtbl->GetParent(This,ppsnParent);
+}
+static FORCEINLINE HRESULT IScriptNode_GetIndexInParent(IScriptNode* This,ULONG *pisn) {
+    return This->lpVtbl->GetIndexInParent(This,pisn);
+}
+static FORCEINLINE HRESULT IScriptNode_GetCookie(IScriptNode* This,DWORD *pdwCookie) {
+    return This->lpVtbl->GetCookie(This,pdwCookie);
+}
+static FORCEINLINE HRESULT IScriptNode_GetNumberOfChildren(IScriptNode* This,ULONG *pcsn) {
+    return This->lpVtbl->GetNumberOfChildren(This,pcsn);
+}
+static FORCEINLINE HRESULT IScriptNode_GetChild(IScriptNode* This,ULONG isn,IScriptNode **ppsn) {
+    return This->lpVtbl->GetChild(This,isn,ppsn);
+}
+static FORCEINLINE HRESULT IScriptNode_GetLanguage(IScriptNode* This,BSTR *pbstr) {
+    return This->lpVtbl->GetLanguage(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptNode_CreateChildEntry(IScriptNode* This,ULONG isn,DWORD dwCookie,LPCOLESTR pszDelimiter,IScriptEntry **ppse) {
+    return This->lpVtbl->CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse);
+}
+static FORCEINLINE HRESULT IScriptNode_CreateChildHandler(IScriptNode* This,LPCOLESTR pszDefaultName,LPCOLESTR *prgpszNames,ULONG cpszNames,LPCOLESTR pszEvent,LPCOLESTR pszDelimiter,ITypeInfo *ptiSignature,ULONG iMethodSignature,ULONG isn,DWORD dwCookie,IScriptEntry **ppse) {
+    return This->lpVtbl->CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IScriptNode_Alive_Proxy(
+    IScriptNode* This);
+void __RPC_STUB IScriptNode_Alive_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_Delete_Proxy(
+    IScriptNode* This);
+void __RPC_STUB IScriptNode_Delete_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_GetParent_Proxy(
+    IScriptNode* This,
+    IScriptNode **ppsnParent);
+void __RPC_STUB IScriptNode_GetParent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_GetIndexInParent_Proxy(
+    IScriptNode* This,
+    ULONG *pisn);
+void __RPC_STUB IScriptNode_GetIndexInParent_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_GetCookie_Proxy(
+    IScriptNode* This,
+    DWORD *pdwCookie);
+void __RPC_STUB IScriptNode_GetCookie_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_GetNumberOfChildren_Proxy(
+    IScriptNode* This,
+    ULONG *pcsn);
+void __RPC_STUB IScriptNode_GetNumberOfChildren_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_GetChild_Proxy(
+    IScriptNode* This,
+    ULONG isn,
+    IScriptNode **ppsn);
+void __RPC_STUB IScriptNode_GetChild_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_GetLanguage_Proxy(
+    IScriptNode* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptNode_GetLanguage_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_CreateChildEntry_Proxy(
+    IScriptNode* This,
+    ULONG isn,
+    DWORD dwCookie,
+    LPCOLESTR pszDelimiter,
+    IScriptEntry **ppse);
+void __RPC_STUB IScriptNode_CreateChildEntry_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptNode_CreateChildHandler_Proxy(
+    IScriptNode* This,
+    LPCOLESTR pszDefaultName,
+    LPCOLESTR *prgpszNames,
+    ULONG cpszNames,
+    LPCOLESTR pszEvent,
+    LPCOLESTR pszDelimiter,
+    ITypeInfo *ptiSignature,
+    ULONG iMethodSignature,
+    ULONG isn,
+    DWORD dwCookie,
+    IScriptEntry **ppse);
+void __RPC_STUB IScriptNode_CreateChildHandler_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IScriptNode_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IScriptEntry interface
+ */
+#ifndef __IScriptEntry_INTERFACE_DEFINED__
+#define __IScriptEntry_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IScriptEntry, 0x0aee2a95, 0xbcbb, 0x11d0, 0x8c,0x72, 0x00,0xc0,0x4f,0xc2,0xb0,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0aee2a95-bcbb-11d0-8c72-00c04fc2b085")
+IScriptEntry : public IScriptNode
+{
+    virtual HRESULT STDMETHODCALLTYPE GetText(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetText(
+        LPCOLESTR psz) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetBody(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetBody(
+        LPCOLESTR psz) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetName(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetName(
+        LPCOLESTR psz) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetItemName(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetItemName(
+        LPCOLESTR psz) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSignature(
+        ITypeInfo **ppti,
+        ULONG *piMethod) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSignature(
+        ITypeInfo *pti,
+        ULONG iMethod) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRange(
+        ULONG *pichMin,
+        ULONG *pcch) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IScriptEntry, 0x0aee2a95, 0xbcbb, 0x11d0, 0x8c,0x72, 0x00,0xc0,0x4f,0xc2,0xb0,0x85)
+#endif
+#else
+typedef struct IScriptEntryVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IScriptEntry* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IScriptEntry* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IScriptEntry* This);
+
+    /*** IScriptNode methods ***/
+    HRESULT (STDMETHODCALLTYPE *Alive)(
+        IScriptEntry* This);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IScriptEntry* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetParent)(
+        IScriptEntry* This,
+        IScriptNode **ppsnParent);
+
+    HRESULT (STDMETHODCALLTYPE *GetIndexInParent)(
+        IScriptEntry* This,
+        ULONG *pisn);
+
+    HRESULT (STDMETHODCALLTYPE *GetCookie)(
+        IScriptEntry* This,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *GetNumberOfChildren)(
+        IScriptEntry* This,
+        ULONG *pcsn);
+
+    HRESULT (STDMETHODCALLTYPE *GetChild)(
+        IScriptEntry* This,
+        ULONG isn,
+        IScriptNode **ppsn);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+        IScriptEntry* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *CreateChildEntry)(
+        IScriptEntry* This,
+        ULONG isn,
+        DWORD dwCookie,
+        LPCOLESTR pszDelimiter,
+        IScriptEntry **ppse);
+
+    HRESULT (STDMETHODCALLTYPE *CreateChildHandler)(
+        IScriptEntry* This,
+        LPCOLESTR pszDefaultName,
+        LPCOLESTR *prgpszNames,
+        ULONG cpszNames,
+        LPCOLESTR pszEvent,
+        LPCOLESTR pszDelimiter,
+        ITypeInfo *ptiSignature,
+        ULONG iMethodSignature,
+        ULONG isn,
+        DWORD dwCookie,
+        IScriptEntry **ppse);
+
+    /*** IScriptEntry methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetText)(
+        IScriptEntry* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetText)(
+        IScriptEntry* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetBody)(
+        IScriptEntry* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetBody)(
+        IScriptEntry* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IScriptEntry* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        IScriptEntry* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetItemName)(
+        IScriptEntry* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetItemName)(
+        IScriptEntry* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetSignature)(
+        IScriptEntry* This,
+        ITypeInfo **ppti,
+        ULONG *piMethod);
+
+    HRESULT (STDMETHODCALLTYPE *SetSignature)(
+        IScriptEntry* This,
+        ITypeInfo *pti,
+        ULONG iMethod);
+
+    HRESULT (STDMETHODCALLTYPE *GetRange)(
+        IScriptEntry* This,
+        ULONG *pichMin,
+        ULONG *pcch);
+
+    END_INTERFACE
+} IScriptEntryVtbl;
+interface IScriptEntry {
+    CONST_VTBL IScriptEntryVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IScriptEntry_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IScriptEntry_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IScriptEntry_Release(This) (This)->lpVtbl->Release(This)
+/*** IScriptNode methods ***/
+#define IScriptEntry_Alive(This) (This)->lpVtbl->Alive(This)
+#define IScriptEntry_Delete(This) (This)->lpVtbl->Delete(This)
+#define IScriptEntry_GetParent(This,ppsnParent) (This)->lpVtbl->GetParent(This,ppsnParent)
+#define IScriptEntry_GetIndexInParent(This,pisn) (This)->lpVtbl->GetIndexInParent(This,pisn)
+#define IScriptEntry_GetCookie(This,pdwCookie) (This)->lpVtbl->GetCookie(This,pdwCookie)
+#define IScriptEntry_GetNumberOfChildren(This,pcsn) (This)->lpVtbl->GetNumberOfChildren(This,pcsn)
+#define IScriptEntry_GetChild(This,isn,ppsn) (This)->lpVtbl->GetChild(This,isn,ppsn)
+#define IScriptEntry_GetLanguage(This,pbstr) (This)->lpVtbl->GetLanguage(This,pbstr)
+#define IScriptEntry_CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse) (This)->lpVtbl->CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse)
+#define IScriptEntry_CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse) (This)->lpVtbl->CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse)
+/*** IScriptEntry methods ***/
+#define IScriptEntry_GetText(This,pbstr) (This)->lpVtbl->GetText(This,pbstr)
+#define IScriptEntry_SetText(This,psz) (This)->lpVtbl->SetText(This,psz)
+#define IScriptEntry_GetBody(This,pbstr) (This)->lpVtbl->GetBody(This,pbstr)
+#define IScriptEntry_SetBody(This,psz) (This)->lpVtbl->SetBody(This,psz)
+#define IScriptEntry_GetName(This,pbstr) (This)->lpVtbl->GetName(This,pbstr)
+#define IScriptEntry_SetName(This,psz) (This)->lpVtbl->SetName(This,psz)
+#define IScriptEntry_GetItemName(This,pbstr) (This)->lpVtbl->GetItemName(This,pbstr)
+#define IScriptEntry_SetItemName(This,psz) (This)->lpVtbl->SetItemName(This,psz)
+#define IScriptEntry_GetSignature(This,ppti,piMethod) (This)->lpVtbl->GetSignature(This,ppti,piMethod)
+#define IScriptEntry_SetSignature(This,pti,iMethod) (This)->lpVtbl->SetSignature(This,pti,iMethod)
+#define IScriptEntry_GetRange(This,pichMin,pcch) (This)->lpVtbl->GetRange(This,pichMin,pcch)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IScriptEntry_QueryInterface(IScriptEntry* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IScriptEntry_AddRef(IScriptEntry* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IScriptEntry_Release(IScriptEntry* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IScriptNode methods ***/
+static FORCEINLINE HRESULT IScriptEntry_Alive(IScriptEntry* This) {
+    return This->lpVtbl->Alive(This);
+}
+static FORCEINLINE HRESULT IScriptEntry_Delete(IScriptEntry* This) {
+    return This->lpVtbl->Delete(This);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetParent(IScriptEntry* This,IScriptNode **ppsnParent) {
+    return This->lpVtbl->GetParent(This,ppsnParent);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetIndexInParent(IScriptEntry* This,ULONG *pisn) {
+    return This->lpVtbl->GetIndexInParent(This,pisn);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetCookie(IScriptEntry* This,DWORD *pdwCookie) {
+    return This->lpVtbl->GetCookie(This,pdwCookie);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetNumberOfChildren(IScriptEntry* This,ULONG *pcsn) {
+    return This->lpVtbl->GetNumberOfChildren(This,pcsn);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetChild(IScriptEntry* This,ULONG isn,IScriptNode **ppsn) {
+    return This->lpVtbl->GetChild(This,isn,ppsn);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetLanguage(IScriptEntry* This,BSTR *pbstr) {
+    return This->lpVtbl->GetLanguage(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptEntry_CreateChildEntry(IScriptEntry* This,ULONG isn,DWORD dwCookie,LPCOLESTR pszDelimiter,IScriptEntry **ppse) {
+    return This->lpVtbl->CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse);
+}
+static FORCEINLINE HRESULT IScriptEntry_CreateChildHandler(IScriptEntry* This,LPCOLESTR pszDefaultName,LPCOLESTR *prgpszNames,ULONG cpszNames,LPCOLESTR pszEvent,LPCOLESTR pszDelimiter,ITypeInfo *ptiSignature,ULONG iMethodSignature,ULONG isn,DWORD dwCookie,IScriptEntry **ppse) {
+    return This->lpVtbl->CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse);
+}
+/*** IScriptEntry methods ***/
+static FORCEINLINE HRESULT IScriptEntry_GetText(IScriptEntry* This,BSTR *pbstr) {
+    return This->lpVtbl->GetText(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptEntry_SetText(IScriptEntry* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetText(This,psz);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetBody(IScriptEntry* This,BSTR *pbstr) {
+    return This->lpVtbl->GetBody(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptEntry_SetBody(IScriptEntry* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetBody(This,psz);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetName(IScriptEntry* This,BSTR *pbstr) {
+    return This->lpVtbl->GetName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptEntry_SetName(IScriptEntry* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetName(This,psz);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetItemName(IScriptEntry* This,BSTR *pbstr) {
+    return This->lpVtbl->GetItemName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptEntry_SetItemName(IScriptEntry* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetItemName(This,psz);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetSignature(IScriptEntry* This,ITypeInfo **ppti,ULONG *piMethod) {
+    return This->lpVtbl->GetSignature(This,ppti,piMethod);
+}
+static FORCEINLINE HRESULT IScriptEntry_SetSignature(IScriptEntry* This,ITypeInfo *pti,ULONG iMethod) {
+    return This->lpVtbl->SetSignature(This,pti,iMethod);
+}
+static FORCEINLINE HRESULT IScriptEntry_GetRange(IScriptEntry* This,ULONG *pichMin,ULONG *pcch) {
+    return This->lpVtbl->GetRange(This,pichMin,pcch);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IScriptEntry_GetText_Proxy(
+    IScriptEntry* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptEntry_GetText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_SetText_Proxy(
+    IScriptEntry* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptEntry_SetText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_GetBody_Proxy(
+    IScriptEntry* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptEntry_GetBody_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_SetBody_Proxy(
+    IScriptEntry* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptEntry_SetBody_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_GetName_Proxy(
+    IScriptEntry* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptEntry_GetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_SetName_Proxy(
+    IScriptEntry* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptEntry_SetName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_GetItemName_Proxy(
+    IScriptEntry* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptEntry_GetItemName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_SetItemName_Proxy(
+    IScriptEntry* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptEntry_SetItemName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_GetSignature_Proxy(
+    IScriptEntry* This,
+    ITypeInfo **ppti,
+    ULONG *piMethod);
+void __RPC_STUB IScriptEntry_GetSignature_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_SetSignature_Proxy(
+    IScriptEntry* This,
+    ITypeInfo *pti,
+    ULONG iMethod);
+void __RPC_STUB IScriptEntry_SetSignature_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptEntry_GetRange_Proxy(
+    IScriptEntry* This,
+    ULONG *pichMin,
+    ULONG *pcch);
+void __RPC_STUB IScriptEntry_GetRange_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IScriptEntry_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IScriptScriptlet interface
+ */
+#ifndef __IScriptScriptlet_INTERFACE_DEFINED__
+#define __IScriptScriptlet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IScriptScriptlet, 0x0aee2a96, 0xbcbb, 0x11d0, 0x8c,0x72, 0x00,0xc0,0x4f,0xc2,0xb0,0x85);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("0aee2a96-bcbb-11d0-8c72-00c04fc2b085")
+IScriptScriptlet : public IScriptEntry
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSubItemName(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSubItemName(
+        LPCOLESTR psz) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetEventName(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetEventName(
+        LPCOLESTR psz) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSimpleEventName(
+        BSTR *pbstr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetSimpleEventName(
+        LPCOLESTR psz) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IScriptScriptlet, 0x0aee2a96, 0xbcbb, 0x11d0, 0x8c,0x72, 0x00,0xc0,0x4f,0xc2,0xb0,0x85)
+#endif
+#else
+typedef struct IScriptScriptletVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IScriptScriptlet* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IScriptScriptlet* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IScriptScriptlet* This);
+
+    /*** IScriptNode methods ***/
+    HRESULT (STDMETHODCALLTYPE *Alive)(
+        IScriptScriptlet* This);
+
+    HRESULT (STDMETHODCALLTYPE *Delete)(
+        IScriptScriptlet* This);
+
+    HRESULT (STDMETHODCALLTYPE *GetParent)(
+        IScriptScriptlet* This,
+        IScriptNode **ppsnParent);
+
+    HRESULT (STDMETHODCALLTYPE *GetIndexInParent)(
+        IScriptScriptlet* This,
+        ULONG *pisn);
+
+    HRESULT (STDMETHODCALLTYPE *GetCookie)(
+        IScriptScriptlet* This,
+        DWORD *pdwCookie);
+
+    HRESULT (STDMETHODCALLTYPE *GetNumberOfChildren)(
+        IScriptScriptlet* This,
+        ULONG *pcsn);
+
+    HRESULT (STDMETHODCALLTYPE *GetChild)(
+        IScriptScriptlet* This,
+        ULONG isn,
+        IScriptNode **ppsn);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguage)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *CreateChildEntry)(
+        IScriptScriptlet* This,
+        ULONG isn,
+        DWORD dwCookie,
+        LPCOLESTR pszDelimiter,
+        IScriptEntry **ppse);
+
+    HRESULT (STDMETHODCALLTYPE *CreateChildHandler)(
+        IScriptScriptlet* This,
+        LPCOLESTR pszDefaultName,
+        LPCOLESTR *prgpszNames,
+        ULONG cpszNames,
+        LPCOLESTR pszEvent,
+        LPCOLESTR pszDelimiter,
+        ITypeInfo *ptiSignature,
+        ULONG iMethodSignature,
+        ULONG isn,
+        DWORD dwCookie,
+        IScriptEntry **ppse);
+
+    /*** IScriptEntry methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetText)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetText)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetBody)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetBody)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetName)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetName)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetItemName)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetItemName)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetSignature)(
+        IScriptScriptlet* This,
+        ITypeInfo **ppti,
+        ULONG *piMethod);
+
+    HRESULT (STDMETHODCALLTYPE *SetSignature)(
+        IScriptScriptlet* This,
+        ITypeInfo *pti,
+        ULONG iMethod);
+
+    HRESULT (STDMETHODCALLTYPE *GetRange)(
+        IScriptScriptlet* This,
+        ULONG *pichMin,
+        ULONG *pcch);
+
+    /*** IScriptScriptlet methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSubItemName)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetSubItemName)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetEventName)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetEventName)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    HRESULT (STDMETHODCALLTYPE *GetSimpleEventName)(
+        IScriptScriptlet* This,
+        BSTR *pbstr);
+
+    HRESULT (STDMETHODCALLTYPE *SetSimpleEventName)(
+        IScriptScriptlet* This,
+        LPCOLESTR psz);
+
+    END_INTERFACE
+} IScriptScriptletVtbl;
+interface IScriptScriptlet {
+    CONST_VTBL IScriptScriptletVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IScriptScriptlet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IScriptScriptlet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IScriptScriptlet_Release(This) (This)->lpVtbl->Release(This)
+/*** IScriptNode methods ***/
+#define IScriptScriptlet_Alive(This) (This)->lpVtbl->Alive(This)
+#define IScriptScriptlet_Delete(This) (This)->lpVtbl->Delete(This)
+#define IScriptScriptlet_GetParent(This,ppsnParent) (This)->lpVtbl->GetParent(This,ppsnParent)
+#define IScriptScriptlet_GetIndexInParent(This,pisn) (This)->lpVtbl->GetIndexInParent(This,pisn)
+#define IScriptScriptlet_GetCookie(This,pdwCookie) (This)->lpVtbl->GetCookie(This,pdwCookie)
+#define IScriptScriptlet_GetNumberOfChildren(This,pcsn) (This)->lpVtbl->GetNumberOfChildren(This,pcsn)
+#define IScriptScriptlet_GetChild(This,isn,ppsn) (This)->lpVtbl->GetChild(This,isn,ppsn)
+#define IScriptScriptlet_GetLanguage(This,pbstr) (This)->lpVtbl->GetLanguage(This,pbstr)
+#define IScriptScriptlet_CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse) (This)->lpVtbl->CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse)
+#define IScriptScriptlet_CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse) (This)->lpVtbl->CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse)
+/*** IScriptEntry methods ***/
+#define IScriptScriptlet_GetText(This,pbstr) (This)->lpVtbl->GetText(This,pbstr)
+#define IScriptScriptlet_SetText(This,psz) (This)->lpVtbl->SetText(This,psz)
+#define IScriptScriptlet_GetBody(This,pbstr) (This)->lpVtbl->GetBody(This,pbstr)
+#define IScriptScriptlet_SetBody(This,psz) (This)->lpVtbl->SetBody(This,psz)
+#define IScriptScriptlet_GetName(This,pbstr) (This)->lpVtbl->GetName(This,pbstr)
+#define IScriptScriptlet_SetName(This,psz) (This)->lpVtbl->SetName(This,psz)
+#define IScriptScriptlet_GetItemName(This,pbstr) (This)->lpVtbl->GetItemName(This,pbstr)
+#define IScriptScriptlet_SetItemName(This,psz) (This)->lpVtbl->SetItemName(This,psz)
+#define IScriptScriptlet_GetSignature(This,ppti,piMethod) (This)->lpVtbl->GetSignature(This,ppti,piMethod)
+#define IScriptScriptlet_SetSignature(This,pti,iMethod) (This)->lpVtbl->SetSignature(This,pti,iMethod)
+#define IScriptScriptlet_GetRange(This,pichMin,pcch) (This)->lpVtbl->GetRange(This,pichMin,pcch)
+/*** IScriptScriptlet methods ***/
+#define IScriptScriptlet_GetSubItemName(This,pbstr) (This)->lpVtbl->GetSubItemName(This,pbstr)
+#define IScriptScriptlet_SetSubItemName(This,psz) (This)->lpVtbl->SetSubItemName(This,psz)
+#define IScriptScriptlet_GetEventName(This,pbstr) (This)->lpVtbl->GetEventName(This,pbstr)
+#define IScriptScriptlet_SetEventName(This,psz) (This)->lpVtbl->SetEventName(This,psz)
+#define IScriptScriptlet_GetSimpleEventName(This,pbstr) (This)->lpVtbl->GetSimpleEventName(This,pbstr)
+#define IScriptScriptlet_SetSimpleEventName(This,psz) (This)->lpVtbl->SetSimpleEventName(This,psz)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IScriptScriptlet_QueryInterface(IScriptScriptlet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IScriptScriptlet_AddRef(IScriptScriptlet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IScriptScriptlet_Release(IScriptScriptlet* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IScriptNode methods ***/
+static FORCEINLINE HRESULT IScriptScriptlet_Alive(IScriptScriptlet* This) {
+    return This->lpVtbl->Alive(This);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_Delete(IScriptScriptlet* This) {
+    return This->lpVtbl->Delete(This);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetParent(IScriptScriptlet* This,IScriptNode **ppsnParent) {
+    return This->lpVtbl->GetParent(This,ppsnParent);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetIndexInParent(IScriptScriptlet* This,ULONG *pisn) {
+    return This->lpVtbl->GetIndexInParent(This,pisn);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetCookie(IScriptScriptlet* This,DWORD *pdwCookie) {
+    return This->lpVtbl->GetCookie(This,pdwCookie);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetNumberOfChildren(IScriptScriptlet* This,ULONG *pcsn) {
+    return This->lpVtbl->GetNumberOfChildren(This,pcsn);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetChild(IScriptScriptlet* This,ULONG isn,IScriptNode **ppsn) {
+    return This->lpVtbl->GetChild(This,isn,ppsn);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetLanguage(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetLanguage(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_CreateChildEntry(IScriptScriptlet* This,ULONG isn,DWORD dwCookie,LPCOLESTR pszDelimiter,IScriptEntry **ppse) {
+    return This->lpVtbl->CreateChildEntry(This,isn,dwCookie,pszDelimiter,ppse);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_CreateChildHandler(IScriptScriptlet* This,LPCOLESTR pszDefaultName,LPCOLESTR *prgpszNames,ULONG cpszNames,LPCOLESTR pszEvent,LPCOLESTR pszDelimiter,ITypeInfo *ptiSignature,ULONG iMethodSignature,ULONG isn,DWORD dwCookie,IScriptEntry **ppse) {
+    return This->lpVtbl->CreateChildHandler(This,pszDefaultName,prgpszNames,cpszNames,pszEvent,pszDelimiter,ptiSignature,iMethodSignature,isn,dwCookie,ppse);
+}
+/*** IScriptEntry methods ***/
+static FORCEINLINE HRESULT IScriptScriptlet_GetText(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetText(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetText(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetText(This,psz);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetBody(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetBody(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetBody(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetBody(This,psz);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetName(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetName(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetName(This,psz);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetItemName(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetItemName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetItemName(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetItemName(This,psz);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetSignature(IScriptScriptlet* This,ITypeInfo **ppti,ULONG *piMethod) {
+    return This->lpVtbl->GetSignature(This,ppti,piMethod);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetSignature(IScriptScriptlet* This,ITypeInfo *pti,ULONG iMethod) {
+    return This->lpVtbl->SetSignature(This,pti,iMethod);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetRange(IScriptScriptlet* This,ULONG *pichMin,ULONG *pcch) {
+    return This->lpVtbl->GetRange(This,pichMin,pcch);
+}
+/*** IScriptScriptlet methods ***/
+static FORCEINLINE HRESULT IScriptScriptlet_GetSubItemName(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetSubItemName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetSubItemName(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetSubItemName(This,psz);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetEventName(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetEventName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetEventName(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetEventName(This,psz);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_GetSimpleEventName(IScriptScriptlet* This,BSTR *pbstr) {
+    return This->lpVtbl->GetSimpleEventName(This,pbstr);
+}
+static FORCEINLINE HRESULT IScriptScriptlet_SetSimpleEventName(IScriptScriptlet* This,LPCOLESTR psz) {
+    return This->lpVtbl->SetSimpleEventName(This,psz);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IScriptScriptlet_GetSubItemName_Proxy(
+    IScriptScriptlet* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptScriptlet_GetSubItemName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptScriptlet_SetSubItemName_Proxy(
+    IScriptScriptlet* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptScriptlet_SetSubItemName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptScriptlet_GetEventName_Proxy(
+    IScriptScriptlet* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptScriptlet_GetEventName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptScriptlet_SetEventName_Proxy(
+    IScriptScriptlet* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptScriptlet_SetEventName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptScriptlet_GetSimpleEventName_Proxy(
+    IScriptScriptlet* This,
+    BSTR *pbstr);
+void __RPC_STUB IScriptScriptlet_GetSimpleEventName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IScriptScriptlet_SetSimpleEventName_Proxy(
+    IScriptScriptlet* This,
+    LPCOLESTR psz);
+void __RPC_STUB IScriptScriptlet_SetSimpleEventName_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IScriptScriptlet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptAuthor interface
+ */
+#ifndef __IActiveScriptAuthor_INTERFACE_DEFINED__
+#define __IActiveScriptAuthor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptAuthor, 0x9c109da0, 0x7006, 0x11d1, 0xb3,0x6c, 0x00,0xa0,0xc9,0x11,0xe8,0xb2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9c109da0-7006-11d1-b36c-00a0c911e8b2")
+IActiveScriptAuthor : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE AddNamedItem(
+        LPCOLESTR pszName,
+        DWORD dwFlags,
+        IDispatch *pdisp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddScriptlet(
+        LPCOLESTR pszDefaultName,
+        LPCOLESTR pszCode,
+        LPCOLESTR pszItemName,
+        LPCOLESTR pszSubItemName,
+        LPCOLESTR pszEventName,
+        LPCOLESTR pszDelimiter,
+        DWORD dwCookie,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ParseScriptText(
+        LPCOLESTR pszCode,
+        LPCOLESTR pszItemName,
+        LPCOLESTR pszDelimiter,
+        DWORD dwCookie,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptTextAttributes(
+        LPCOLESTR pszCode,
+        ULONG cch,
+        LPCOLESTR pszDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetScriptletTextAttributes(
+        LPCOLESTR pszCode,
+        ULONG cch,
+        LPCOLESTR pszDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetRoot(
+        IScriptNode **ppsp) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetLanguageFlags(
+        DWORD *pgrfasa) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetEventHandler(
+        IDispatch *pdisp,
+        LPCOLESTR pszItem,
+        LPCOLESTR pszSubItem,
+        LPCOLESTR pszEvent,
+        IScriptEntry **ppse) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveNamedItem(
+        LPCOLESTR pszName) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE AddTypeLib(
+        REFGUID rguidTypeLib,
+        DWORD dwMajor,
+        DWORD dwMinor,
+        DWORD dwFlags) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE RemoveTypeLib(
+        REFGUID rguidTypeLib,
+        DWORD dwMajor,
+        DWORD dwMinor) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetChars(
+        DWORD fRequestedList,
+        BSTR *pbstrChars) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetInfoFromContext(
+        LPCOLESTR pszCode,
+        ULONG cchCode,
+        ULONG ichCurrentPosition,
+        DWORD dwListTypesRequested,
+        DWORD *pdwListTypesProvided,
+        ULONG *pichListAnchorPosition,
+        ULONG *pichFuncAnchorPosition,
+        MEMBERID *pmemid,
+        LONG *piCurrentParameter,
+        IUnknown **ppunk) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsCommitChar(
+        OLECHAR ch,
+        BOOL *pfcommit) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptAuthor, 0x9c109da0, 0x7006, 0x11d1, 0xb3,0x6c, 0x00,0xa0,0xc9,0x11,0xe8,0xb2)
+#endif
+#else
+typedef struct IActiveScriptAuthorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptAuthor* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptAuthor* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptAuthor* This);
+
+    /*** IActiveScriptAuthor methods ***/
+    HRESULT (STDMETHODCALLTYPE *AddNamedItem)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszName,
+        DWORD dwFlags,
+        IDispatch *pdisp);
+
+    HRESULT (STDMETHODCALLTYPE *AddScriptlet)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszDefaultName,
+        LPCOLESTR pszCode,
+        LPCOLESTR pszItemName,
+        LPCOLESTR pszSubItemName,
+        LPCOLESTR pszEventName,
+        LPCOLESTR pszDelimiter,
+        DWORD dwCookie,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *ParseScriptText)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszCode,
+        LPCOLESTR pszItemName,
+        LPCOLESTR pszDelimiter,
+        DWORD dwCookie,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptTextAttributes)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszCode,
+        ULONG cch,
+        LPCOLESTR pszDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *GetScriptletTextAttributes)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszCode,
+        ULONG cch,
+        LPCOLESTR pszDelimiter,
+        DWORD dwFlags,
+        SOURCE_TEXT_ATTR *pattr);
+
+    HRESULT (STDMETHODCALLTYPE *GetRoot)(
+        IActiveScriptAuthor* This,
+        IScriptNode **ppsp);
+
+    HRESULT (STDMETHODCALLTYPE *GetLanguageFlags)(
+        IActiveScriptAuthor* This,
+        DWORD *pgrfasa);
+
+    HRESULT (STDMETHODCALLTYPE *GetEventHandler)(
+        IActiveScriptAuthor* This,
+        IDispatch *pdisp,
+        LPCOLESTR pszItem,
+        LPCOLESTR pszSubItem,
+        LPCOLESTR pszEvent,
+        IScriptEntry **ppse);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveNamedItem)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszName);
+
+    HRESULT (STDMETHODCALLTYPE *AddTypeLib)(
+        IActiveScriptAuthor* This,
+        REFGUID rguidTypeLib,
+        DWORD dwMajor,
+        DWORD dwMinor,
+        DWORD dwFlags);
+
+    HRESULT (STDMETHODCALLTYPE *RemoveTypeLib)(
+        IActiveScriptAuthor* This,
+        REFGUID rguidTypeLib,
+        DWORD dwMajor,
+        DWORD dwMinor);
+
+    HRESULT (STDMETHODCALLTYPE *GetChars)(
+        IActiveScriptAuthor* This,
+        DWORD fRequestedList,
+        BSTR *pbstrChars);
+
+    HRESULT (STDMETHODCALLTYPE *GetInfoFromContext)(
+        IActiveScriptAuthor* This,
+        LPCOLESTR pszCode,
+        ULONG cchCode,
+        ULONG ichCurrentPosition,
+        DWORD dwListTypesRequested,
+        DWORD *pdwListTypesProvided,
+        ULONG *pichListAnchorPosition,
+        ULONG *pichFuncAnchorPosition,
+        MEMBERID *pmemid,
+        LONG *piCurrentParameter,
+        IUnknown **ppunk);
+
+    HRESULT (STDMETHODCALLTYPE *IsCommitChar)(
+        IActiveScriptAuthor* This,
+        OLECHAR ch,
+        BOOL *pfcommit);
+
+    END_INTERFACE
+} IActiveScriptAuthorVtbl;
+interface IActiveScriptAuthor {
+    CONST_VTBL IActiveScriptAuthorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptAuthor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptAuthor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptAuthor_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptAuthor methods ***/
+#define IActiveScriptAuthor_AddNamedItem(This,pszName,dwFlags,pdisp) (This)->lpVtbl->AddNamedItem(This,pszName,dwFlags,pdisp)
+#define IActiveScriptAuthor_AddScriptlet(This,pszDefaultName,pszCode,pszItemName,pszSubItemName,pszEventName,pszDelimiter,dwCookie,dwFlags) (This)->lpVtbl->AddScriptlet(This,pszDefaultName,pszCode,pszItemName,pszSubItemName,pszEventName,pszDelimiter,dwCookie,dwFlags)
+#define IActiveScriptAuthor_ParseScriptText(This,pszCode,pszItemName,pszDelimiter,dwCookie,dwFlags) (This)->lpVtbl->ParseScriptText(This,pszCode,pszItemName,pszDelimiter,dwCookie,dwFlags)
+#define IActiveScriptAuthor_GetScriptTextAttributes(This,pszCode,cch,pszDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptTextAttributes(This,pszCode,cch,pszDelimiter,dwFlags,pattr)
+#define IActiveScriptAuthor_GetScriptletTextAttributes(This,pszCode,cch,pszDelimiter,dwFlags,pattr) (This)->lpVtbl->GetScriptletTextAttributes(This,pszCode,cch,pszDelimiter,dwFlags,pattr)
+#define IActiveScriptAuthor_GetRoot(This,ppsp) (This)->lpVtbl->GetRoot(This,ppsp)
+#define IActiveScriptAuthor_GetLanguageFlags(This,pgrfasa) (This)->lpVtbl->GetLanguageFlags(This,pgrfasa)
+#define IActiveScriptAuthor_GetEventHandler(This,pdisp,pszItem,pszSubItem,pszEvent,ppse) (This)->lpVtbl->GetEventHandler(This,pdisp,pszItem,pszSubItem,pszEvent,ppse)
+#define IActiveScriptAuthor_RemoveNamedItem(This,pszName) (This)->lpVtbl->RemoveNamedItem(This,pszName)
+#define IActiveScriptAuthor_AddTypeLib(This,rguidTypeLib,dwMajor,dwMinor,dwFlags) (This)->lpVtbl->AddTypeLib(This,rguidTypeLib,dwMajor,dwMinor,dwFlags)
+#define IActiveScriptAuthor_RemoveTypeLib(This,rguidTypeLib,dwMajor,dwMinor) (This)->lpVtbl->RemoveTypeLib(This,rguidTypeLib,dwMajor,dwMinor)
+#define IActiveScriptAuthor_GetChars(This,fRequestedList,pbstrChars) (This)->lpVtbl->GetChars(This,fRequestedList,pbstrChars)
+#define IActiveScriptAuthor_GetInfoFromContext(This,pszCode,cchCode,ichCurrentPosition,dwListTypesRequested,pdwListTypesProvided,pichListAnchorPosition,pichFuncAnchorPosition,pmemid,piCurrentParameter,ppunk) (This)->lpVtbl->GetInfoFromContext(This,pszCode,cchCode,ichCurrentPosition,dwListTypesRequested,pdwListTypesProvided,pichListAnchorPosition,pichFuncAnchorPosition,pmemid,piCurrentParameter,ppunk)
+#define IActiveScriptAuthor_IsCommitChar(This,ch,pfcommit) (This)->lpVtbl->IsCommitChar(This,ch,pfcommit)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptAuthor_QueryInterface(IActiveScriptAuthor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptAuthor_AddRef(IActiveScriptAuthor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptAuthor_Release(IActiveScriptAuthor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptAuthor methods ***/
+static FORCEINLINE HRESULT IActiveScriptAuthor_AddNamedItem(IActiveScriptAuthor* This,LPCOLESTR pszName,DWORD dwFlags,IDispatch *pdisp) {
+    return This->lpVtbl->AddNamedItem(This,pszName,dwFlags,pdisp);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_AddScriptlet(IActiveScriptAuthor* This,LPCOLESTR pszDefaultName,LPCOLESTR pszCode,LPCOLESTR pszItemName,LPCOLESTR pszSubItemName,LPCOLESTR pszEventName,LPCOLESTR pszDelimiter,DWORD dwCookie,DWORD dwFlags) {
+    return This->lpVtbl->AddScriptlet(This,pszDefaultName,pszCode,pszItemName,pszSubItemName,pszEventName,pszDelimiter,dwCookie,dwFlags);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_ParseScriptText(IActiveScriptAuthor* This,LPCOLESTR pszCode,LPCOLESTR pszItemName,LPCOLESTR pszDelimiter,DWORD dwCookie,DWORD dwFlags) {
+    return This->lpVtbl->ParseScriptText(This,pszCode,pszItemName,pszDelimiter,dwCookie,dwFlags);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetScriptTextAttributes(IActiveScriptAuthor* This,LPCOLESTR pszCode,ULONG cch,LPCOLESTR pszDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptTextAttributes(This,pszCode,cch,pszDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetScriptletTextAttributes(IActiveScriptAuthor* This,LPCOLESTR pszCode,ULONG cch,LPCOLESTR pszDelimiter,DWORD dwFlags,SOURCE_TEXT_ATTR *pattr) {
+    return This->lpVtbl->GetScriptletTextAttributes(This,pszCode,cch,pszDelimiter,dwFlags,pattr);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetRoot(IActiveScriptAuthor* This,IScriptNode **ppsp) {
+    return This->lpVtbl->GetRoot(This,ppsp);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetLanguageFlags(IActiveScriptAuthor* This,DWORD *pgrfasa) {
+    return This->lpVtbl->GetLanguageFlags(This,pgrfasa);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetEventHandler(IActiveScriptAuthor* This,IDispatch *pdisp,LPCOLESTR pszItem,LPCOLESTR pszSubItem,LPCOLESTR pszEvent,IScriptEntry **ppse) {
+    return This->lpVtbl->GetEventHandler(This,pdisp,pszItem,pszSubItem,pszEvent,ppse);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_RemoveNamedItem(IActiveScriptAuthor* This,LPCOLESTR pszName) {
+    return This->lpVtbl->RemoveNamedItem(This,pszName);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_AddTypeLib(IActiveScriptAuthor* This,REFGUID rguidTypeLib,DWORD dwMajor,DWORD dwMinor,DWORD dwFlags) {
+    return This->lpVtbl->AddTypeLib(This,rguidTypeLib,dwMajor,dwMinor,dwFlags);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_RemoveTypeLib(IActiveScriptAuthor* This,REFGUID rguidTypeLib,DWORD dwMajor,DWORD dwMinor) {
+    return This->lpVtbl->RemoveTypeLib(This,rguidTypeLib,dwMajor,dwMinor);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetChars(IActiveScriptAuthor* This,DWORD fRequestedList,BSTR *pbstrChars) {
+    return This->lpVtbl->GetChars(This,fRequestedList,pbstrChars);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_GetInfoFromContext(IActiveScriptAuthor* This,LPCOLESTR pszCode,ULONG cchCode,ULONG ichCurrentPosition,DWORD dwListTypesRequested,DWORD *pdwListTypesProvided,ULONG *pichListAnchorPosition,ULONG *pichFuncAnchorPosition,MEMBERID *pmemid,LONG *piCurrentParameter,IUnknown **ppunk) {
+    return This->lpVtbl->GetInfoFromContext(This,pszCode,cchCode,ichCurrentPosition,dwListTypesRequested,pdwListTypesProvided,pichListAnchorPosition,pichFuncAnchorPosition,pmemid,piCurrentParameter,ppunk);
+}
+static FORCEINLINE HRESULT IActiveScriptAuthor_IsCommitChar(IActiveScriptAuthor* This,OLECHAR ch,BOOL *pfcommit) {
+    return This->lpVtbl->IsCommitChar(This,ch,pfcommit);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_AddNamedItem_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszName,
+    DWORD dwFlags,
+    IDispatch *pdisp);
+void __RPC_STUB IActiveScriptAuthor_AddNamedItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_AddScriptlet_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszDefaultName,
+    LPCOLESTR pszCode,
+    LPCOLESTR pszItemName,
+    LPCOLESTR pszSubItemName,
+    LPCOLESTR pszEventName,
+    LPCOLESTR pszDelimiter,
+    DWORD dwCookie,
+    DWORD dwFlags);
+void __RPC_STUB IActiveScriptAuthor_AddScriptlet_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_ParseScriptText_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszCode,
+    LPCOLESTR pszItemName,
+    LPCOLESTR pszDelimiter,
+    DWORD dwCookie,
+    DWORD dwFlags);
+void __RPC_STUB IActiveScriptAuthor_ParseScriptText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetScriptTextAttributes_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszCode,
+    ULONG cch,
+    LPCOLESTR pszDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IActiveScriptAuthor_GetScriptTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetScriptletTextAttributes_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszCode,
+    ULONG cch,
+    LPCOLESTR pszDelimiter,
+    DWORD dwFlags,
+    SOURCE_TEXT_ATTR *pattr);
+void __RPC_STUB IActiveScriptAuthor_GetScriptletTextAttributes_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetRoot_Proxy(
+    IActiveScriptAuthor* This,
+    IScriptNode **ppsp);
+void __RPC_STUB IActiveScriptAuthor_GetRoot_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetLanguageFlags_Proxy(
+    IActiveScriptAuthor* This,
+    DWORD *pgrfasa);
+void __RPC_STUB IActiveScriptAuthor_GetLanguageFlags_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetEventHandler_Proxy(
+    IActiveScriptAuthor* This,
+    IDispatch *pdisp,
+    LPCOLESTR pszItem,
+    LPCOLESTR pszSubItem,
+    LPCOLESTR pszEvent,
+    IScriptEntry **ppse);
+void __RPC_STUB IActiveScriptAuthor_GetEventHandler_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_RemoveNamedItem_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszName);
+void __RPC_STUB IActiveScriptAuthor_RemoveNamedItem_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_AddTypeLib_Proxy(
+    IActiveScriptAuthor* This,
+    REFGUID rguidTypeLib,
+    DWORD dwMajor,
+    DWORD dwMinor,
+    DWORD dwFlags);
+void __RPC_STUB IActiveScriptAuthor_AddTypeLib_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_RemoveTypeLib_Proxy(
+    IActiveScriptAuthor* This,
+    REFGUID rguidTypeLib,
+    DWORD dwMajor,
+    DWORD dwMinor);
+void __RPC_STUB IActiveScriptAuthor_RemoveTypeLib_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetChars_Proxy(
+    IActiveScriptAuthor* This,
+    DWORD fRequestedList,
+    BSTR *pbstrChars);
+void __RPC_STUB IActiveScriptAuthor_GetChars_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_GetInfoFromContext_Proxy(
+    IActiveScriptAuthor* This,
+    LPCOLESTR pszCode,
+    ULONG cchCode,
+    ULONG ichCurrentPosition,
+    DWORD dwListTypesRequested,
+    DWORD *pdwListTypesProvided,
+    ULONG *pichListAnchorPosition,
+    ULONG *pichFuncAnchorPosition,
+    MEMBERID *pmemid,
+    LONG *piCurrentParameter,
+    IUnknown **ppunk);
+void __RPC_STUB IActiveScriptAuthor_GetInfoFromContext_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthor_IsCommitChar_Proxy(
+    IActiveScriptAuthor* This,
+    OLECHAR ch,
+    BOOL *pfcommit);
+void __RPC_STUB IActiveScriptAuthor_IsCommitChar_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptAuthor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IActiveScriptAuthorProcedure interface
+ */
+#ifndef __IActiveScriptAuthorProcedure_INTERFACE_DEFINED__
+#define __IActiveScriptAuthorProcedure_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IActiveScriptAuthorProcedure, 0x7e2d4b70, 0xbd9a, 0x11d0, 0x93,0x36, 0x00,0xa0,0xc9,0x0d,0xca,0xa9);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7e2d4b70-bd9a-11d0-9336-00a0c90dcaa9")
+IActiveScriptAuthorProcedure : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE ParseProcedureText(
+        LPCOLESTR pszCode,
+        LPCOLESTR pszFormalParams,
+        LPCOLESTR pszProcedureName,
+        LPCOLESTR pszItemName,
+        LPCOLESTR pszDelimiter,
+        DWORD dwCookie,
+        DWORD dwFlags,
+        IDispatch *pdispFor) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IActiveScriptAuthorProcedure, 0x7e2d4b70, 0xbd9a, 0x11d0, 0x93,0x36, 0x00,0xa0,0xc9,0x0d,0xca,0xa9)
+#endif
+#else
+typedef struct IActiveScriptAuthorProcedureVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IActiveScriptAuthorProcedure* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IActiveScriptAuthorProcedure* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IActiveScriptAuthorProcedure* This);
+
+    /*** IActiveScriptAuthorProcedure methods ***/
+    HRESULT (STDMETHODCALLTYPE *ParseProcedureText)(
+        IActiveScriptAuthorProcedure* This,
+        LPCOLESTR pszCode,
+        LPCOLESTR pszFormalParams,
+        LPCOLESTR pszProcedureName,
+        LPCOLESTR pszItemName,
+        LPCOLESTR pszDelimiter,
+        DWORD dwCookie,
+        DWORD dwFlags,
+        IDispatch *pdispFor);
+
+    END_INTERFACE
+} IActiveScriptAuthorProcedureVtbl;
+interface IActiveScriptAuthorProcedure {
+    CONST_VTBL IActiveScriptAuthorProcedureVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IActiveScriptAuthorProcedure_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IActiveScriptAuthorProcedure_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IActiveScriptAuthorProcedure_Release(This) (This)->lpVtbl->Release(This)
+/*** IActiveScriptAuthorProcedure methods ***/
+#define IActiveScriptAuthorProcedure_ParseProcedureText(This,pszCode,pszFormalParams,pszProcedureName,pszItemName,pszDelimiter,dwCookie,dwFlags,pdispFor) (This)->lpVtbl->ParseProcedureText(This,pszCode,pszFormalParams,pszProcedureName,pszItemName,pszDelimiter,dwCookie,dwFlags,pdispFor)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IActiveScriptAuthorProcedure_QueryInterface(IActiveScriptAuthorProcedure* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IActiveScriptAuthorProcedure_AddRef(IActiveScriptAuthorProcedure* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IActiveScriptAuthorProcedure_Release(IActiveScriptAuthorProcedure* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IActiveScriptAuthorProcedure methods ***/
+static FORCEINLINE HRESULT IActiveScriptAuthorProcedure_ParseProcedureText(IActiveScriptAuthorProcedure* This,LPCOLESTR pszCode,LPCOLESTR pszFormalParams,LPCOLESTR pszProcedureName,LPCOLESTR pszItemName,LPCOLESTR pszDelimiter,DWORD dwCookie,DWORD dwFlags,IDispatch *pdispFor) {
+    return This->lpVtbl->ParseProcedureText(This,pszCode,pszFormalParams,pszProcedureName,pszItemName,pszDelimiter,dwCookie,dwFlags,pdispFor);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IActiveScriptAuthorProcedure_ParseProcedureText_Proxy(
+    IActiveScriptAuthorProcedure* This,
+    LPCOLESTR pszCode,
+    LPCOLESTR pszFormalParams,
+    LPCOLESTR pszProcedureName,
+    LPCOLESTR pszItemName,
+    LPCOLESTR pszDelimiter,
+    DWORD dwCookie,
+    DWORD dwFlags,
+    IDispatch *pdispFor);
+void __RPC_STUB IActiveScriptAuthorProcedure_ParseProcedureText_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IActiveScriptAuthorProcedure_INTERFACE_DEFINED__ */
+
+#endif
+
+#endif
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
+unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
+unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
+void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __activaut_h__ */
diff --git a/mingw-w64-headers/include/activaut.idl b/mingw-w64-headers/include/activaut.idl
new file mode 100755
index 0000000..2899287
--- /dev/null
+++ b/mingw-w64-headers/include/activaut.idl
@@ -0,0 +1,128 @@
+cpp_quote("/**")
+cpp_quote(" * This file is part of the mingw-w64 runtime package.")
+cpp_quote(" * No warranty is given; refer to the file DISCLAIMER within this package.")
+cpp_quote(" */")
+cpp_quote("")
+cpp_quote("#include <winapifamily.h>")
+cpp_quote("")
+cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
+cpp_quote("")
+cpp_quote("#ifndef __ActivAut_h")
+cpp_quote("#define __ActivAut_h")
+cpp_quote("")
+
+#ifndef DO_NO_IMPORTS
+import "ocidl.idl";
+import "oleidl.idl";
+import "oaidl.idl";
+#endif
+
+cpp_quote("")
+cpp_quote("#ifndef _NO_AUTHOR_GUIDS")
+cpp_quote("DEFINE_GUID(CATID_ActiveScriptAuthor, 0xaee2a92, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
+cpp_quote("DEFINE_GUID(IID_IActiveScriptAuthor, 0x9c109da0, 0x7006, 0x11d1, 0xb3, 0x6c, 0x00, 0xa0, 0xc9, 0x11, 0xe8, 0xb2);")
+cpp_quote("DEFINE_GUID(IID_IScriptNode, 0xaee2a94, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
+cpp_quote("DEFINE_GUID(IID_IScriptEntry, 0xaee2a95, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
+cpp_quote("DEFINE_GUID(IID_IScriptScriptlet, 0xaee2a96, 0xbcbb, 0x11d0, 0x8c, 0x72, 0x0, 0xc0, 0x4f, 0xc2, 0xb0, 0x85);")
+cpp_quote("DEFINE_GUID(IID_IActiveScriptAuthorProcedure, 0x7e2d4b70, 0xbd9a, 0x11d0, 0x93, 0x36, 0x0, 0xa0, 0xc9, 0xd, 0xca, 0xa9);")
+cpp_quote("#endif")
+cpp_quote("")
+cpp_quote("const DWORD fasaPreferInternalHandler = 1;")
+cpp_quote("const DWORD fasaSupportInternalHandler = 2;")
+cpp_quote("const DWORD fasaCaseSensitive = 4;")
+cpp_quote("")
+cpp_quote("const DWORD SCRIPT_CMPL_NOLIST = 0;")
+cpp_quote("const DWORD SCRIPT_CMPL_MEMBERLIST = 1;")
+cpp_quote("const DWORD SCRIPT_CMPL_ENUMLIST = 2;")
+cpp_quote("const DWORD SCRIPT_CMPL_PARAMTIP = 4;")
+cpp_quote("const DWORD SCRIPT_CMPL_GLOBALLIST = 8;")
+cpp_quote("")
+cpp_quote("const DWORD SCRIPT_CMPL_ENUM_TRIGGER = 1;")
+cpp_quote("const DWORD SCRIPT_CMPL_MEMBER_TRIGGER = 2;")
+cpp_quote("const DWORD SCRIPT_CMPL_PARAM_TRIGGER = 3;")
+cpp_quote("const DWORD SCRIPT_CMPL_COMMIT = 4;")
+cpp_quote("")
+cpp_quote("const DWORD GETATTRTYPE_NORMAL = 0;")
+cpp_quote("const DWORD GETATTRTYPE_DEPSCAN = 1;")
+cpp_quote("")
+cpp_quote("const DWORD GETATTRFLAG_THIS = 0x100;")
+cpp_quote("const DWORD GETATTRFLAG_HUMANTEXT = 0x8000;")
+cpp_quote("")
+cpp_quote("const DWORD SOURCETEXT_ATTR_IDENTIFIER = 0x100;")
+cpp_quote("const DWORD SOURCETEXT_ATTR_MEMBERLOOKUP = 0x200;")
+cpp_quote("const DWORD SOURCETEXT_ATTR_THIS = 0x400;")
+cpp_quote("const DWORD SOURCETEXT_ATTR_HUMANTEXT = 0x8000;")
+cpp_quote("")
+
+interface IActiveScriptAuthor;
+interface IScriptNode;
+interface IScriptEntry;
+interface IScriptScriptlet;
+
+typedef WORD SOURCE_TEXT_ATTR;
+
+[uuid (0aee2a94-BCBB-11d0-8c72-00c04fc2b085), pointer_default (unique)]
+interface IScriptNode : IUnknown {
+  HRESULT Alive (void);
+  HRESULT Delete (void);
+  HRESULT GetParent ([out] IScriptNode **ppsnParent);
+  HRESULT GetIndexInParent ([out] ULONG *pisn);
+  HRESULT GetCookie ([out] DWORD *pdwCookie);
+  HRESULT GetNumberOfChildren ([out] ULONG *pcsn);
+  HRESULT GetChild ([in] ULONG isn,[out] IScriptNode **ppsn);
+  HRESULT GetLanguage ([out] BSTR *pbstr);
+  HRESULT CreateChildEntry ([in] ULONG isn,[in] DWORD dwCookie,[in] LPCOLESTR pszDelimiter,[out] IScriptEntry **ppse);
+  HRESULT CreateChildHandler ([in] LPCOLESTR pszDefaultName,[in, size_is (cpszNames)] LPCOLESTR *prgpszNames,[in] ULONG cpszNames,[in] LPCOLESTR pszEvent,[in] LPCOLESTR pszDelimiter,[in] ITypeInfo *ptiSignature,[in] ULONG iMethodSignature,[in] ULONG isn,[in] DWORD dwCookie,[out] IScriptEntry **ppse);
+}
+
+[uuid (0aee2a95-BCBB-11d0-8c72-00c04fc2b085), pointer_default (unique)]
+interface IScriptEntry : IScriptNode {
+  HRESULT GetText ([out] BSTR *pbstr);
+  HRESULT SetText ([in] LPCOLESTR psz);
+  HRESULT GetBody ([out] BSTR *pbstr);
+  HRESULT SetBody ([in] LPCOLESTR psz);
+  HRESULT GetName ([out] BSTR *pbstr);
+  HRESULT SetName ([in] LPCOLESTR psz);
+  HRESULT GetItemName ([out] BSTR *pbstr);
+  HRESULT SetItemName ([in] LPCOLESTR psz);
+  HRESULT GetSignature ([out] ITypeInfo **ppti,[out] ULONG *piMethod);
+  HRESULT SetSignature ([in] ITypeInfo *pti,[in] ULONG iMethod);
+  HRESULT GetRange ([out] ULONG *pichMin,[out] ULONG *pcch);
+}
+
+[uuid (0aee2a96-BCBB-11d0-8c72-00c04fc2b085), pointer_default (unique)]
+interface IScriptScriptlet : IScriptEntry {
+  HRESULT GetSubItemName ([out] BSTR *pbstr);
+  HRESULT SetSubItemName ([in] LPCOLESTR psz);
+  HRESULT GetEventName ([out] BSTR *pbstr);
+  HRESULT SetEventName ([in] LPCOLESTR psz);
+  HRESULT GetSimpleEventName ([out] BSTR *pbstr);
+  HRESULT SetSimpleEventName ([in] LPCOLESTR psz);
+}
+[uuid (9c109da0-7006-11d1-B36C-00a0c911e8b2), pointer_default (unique)]
+interface IActiveScriptAuthor : IUnknown {
+  HRESULT AddNamedItem ([in] LPCOLESTR pszName,[in] DWORD dwFlags,[in] IDispatch *pdisp);
+  HRESULT AddScriptlet ([in] LPCOLESTR pszDefaultName,[in] LPCOLESTR pszCode,[in] LPCOLESTR pszItemName,[in] LPCOLESTR pszSubItemName,[in] LPCOLESTR pszEventName,[in] LPCOLESTR pszDelimiter,[in] DWORD dwCookie,[in] DWORD dwFlags);
+  HRESULT ParseScriptText ([in] LPCOLESTR pszCode,[in] LPCOLESTR pszItemName,[in] LPCOLESTR pszDelimiter,[in] DWORD dwCookie,[in] DWORD dwFlags);
+  HRESULT GetScriptTextAttributes ([in, size_is (cch)] LPCOLESTR pszCode,[in] ULONG cch,[in] LPCOLESTR pszDelimiter,[in] DWORD dwFlags,[in, out, size_is (cch)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT GetScriptletTextAttributes ([in, size_is (cch)] LPCOLESTR pszCode,[in] ULONG cch,[in] LPCOLESTR pszDelimiter,[in] DWORD dwFlags,[in, out, size_is (cch)] SOURCE_TEXT_ATTR *pattr);
+  HRESULT GetRoot ([out] IScriptNode **ppsp);
+  HRESULT GetLanguageFlags ([out] DWORD *pgrfasa);
+  HRESULT GetEventHandler ([in] IDispatch *pdisp,[in] LPCOLESTR pszItem,[in] LPCOLESTR pszSubItem,[in] LPCOLESTR pszEvent,[out] IScriptEntry **ppse);
+  HRESULT RemoveNamedItem ([in] LPCOLESTR pszName);
+  HRESULT AddTypeLib ([in] REFGUID rguidTypeLib,[in] DWORD dwMajor,[in] DWORD dwMinor,[in] DWORD dwFlags);
+  HRESULT RemoveTypeLib ([in] REFGUID rguidTypeLib,[in] DWORD dwMajor,[in] DWORD dwMinor);
+  HRESULT GetChars ([in] DWORD fRequestedList,[out] BSTR *pbstrChars);
+  HRESULT GetInfoFromContext ([in] LPCOLESTR pszCode,[in] ULONG cchCode,[in] ULONG ichCurrentPosition,[in] DWORD dwListTypesRequested,[out] DWORD *pdwListTypesProvided,[out] ULONG *pichListAnchorPosition,[out] ULONG *pichFuncAnchorPosition,[out] MEMBERID *pmemid,[out] LONG *piCurrentParameter,[out] IUnknown **ppunk);
+
+  HRESULT IsCommitChar ([in] OLECHAR ch,[out] BOOL *pfcommit);
+}
+
+[uuid (7e2d4b70-BD9A-11d0-9336-00a0c90dcaa9), pointer_default (unique)]
+interface IActiveScriptAuthorProcedure : IUnknown {
+  HRESULT ParseProcedureText ([in] LPCOLESTR pszCode,[in] LPCOLESTR pszFormalParams,[in] LPCOLESTR pszProcedureName,[in] LPCOLESTR pszItemName,[in] LPCOLESTR pszDelimiter,[in] DWORD dwCookie,[in] DWORD dwFlags,[in] IDispatch *pdispFor);
+}
+
+cpp_quote("#endif")
+cpp_quote("")
+cpp_quote("#endif")